una str_replace recorrer parte extraer eliminar contiene caracteres caracter cadena buscar php

str_replace - Función PHP para construir cadena de consulta desde matriz



recorrer string php (6)

Estoy buscando el nombre de la función PHP para construir una cadena de consulta a partir de una matriz de pares de valores clave. Tenga en cuenta que estoy buscando la función PHP incorporada para hacer esto, no una función casera (eso es todo lo que parece una búsqueda en google). Hay uno, simplemente no puedo recordar su nombre o encontrarlo en php.net. IIRC su nombre no es tan intuitivo.


Aquí hay una implementación simple amigable para php4:

/** * Builds an http query string. * @param array $query // of key value pairs to be used in the query * @return string // http query string. **/ function build_http_query( $query ){ $query_array = array(); foreach( $query as $key => $key_value ){ $query_array[] = urlencode( $key ) . ''='' . urlencode( $key_value ); } return implode( ''&'', $query_array ); }



Solo como una adición a la respuesta de @thatjuan .
Una versión PHP4 más compatible de esto:

if (!function_exists(''http_build_query'')) { if (!defined(''PHP_QUERY_RFC1738'')) { define(''PHP_QUERY_RFC1738'', 1); } if (!defined(''PHP_QUERY_RFC3986'')) { define(''PHP_QUERY_RFC3986'', 2); } function http_build_query($query_data, $numeric_prefix = '''', $arg_separator = ''&'', $enc_type = PHP_QUERY_RFC1738) { $data = array(); foreach ($query_data as $key => $value) { if (is_numeric($key)) { $key = $numeric_prefix . $key; } if (is_scalar($value)) { $k = $enc_type == PHP_QUERY_RFC3986 ? urlencode($key) : rawurlencode($key); $v = $enc_type == PHP_QUERY_RFC3986 ? urlencode($value) : rawurlencode($value); $data[] = "$k=$v"; } else { foreach ($value as $sub_k => $val) { $k = "$key[$sub_k]"; $k = $enc_type == PHP_QUERY_RFC3986 ? urlencode($k) : rawurlencode($k); $v = $enc_type == PHP_QUERY_RFC3986 ? urlencode($val) : rawurlencode($val); $data[] = "$k=$v"; } } } return implode($arg_separator, $data); } }


pero para invertir este trabajo, puedes usar:

void parse_str(str $input, array $output); //for example: $str = "first=value&arr[]=foo+bar&arr[]=baz"; parse_str($str); echo $first; // value echo $arr[0]; // foo bar echo $arr[1]; // baz parse_str($str, $output); echo $output[''first'']; // value echo $output[''arr''][0]; // foo bar echo $output[''arr''][1]; // baz

Buena suerte.


Implode combinará una matriz en una cadena para ti, pero para hacer que una consulta SQL genere un par kay / value, tendrás que escribir tu propia función.