Tengo una URL que se convierte en una cadena de consulta con la función http_build_query .
Pero tengo una timestamp de tiempo de parámetro que no puedo editar. Y × se convierte en un signo de multiplicación x .
¿Hay una solución para esto?
Esta es mi matriz que se pasa a la función http_build_query .
$parameters = array( "transaction_id"=>uniqid("FF-"), "timestamp"=> time(), "order_total"=>$_SESSION['total_price'], "order_total_with_vat"=>$_SESSION['total_price'] * 1.21, "order_vat"=>"21", "payment_method"=>"ideal", "payment_status"=>"1", "customer_name"=>$_SESSION['customer_data']['naam'], "customer_address"=>$_SESSION['customer_data']['address'], "customer_city"=>$_SESSION['customer_data']['city'], "customer_zipcode"=>$_SESSION['customer_data']['zipcode'], "customer_country"=>$_SESSION['customer_data']['country'], "customer_email"=>$_SESSION['customer_data']['email'], "customer_telephone"=>$_SESSION['customer_data']['telephone'], );Salida de URL:
http://somedomain/subdir/someapi/order?transaction_id=FF-58e2451c5aea9×tamp=1491223836&order_total=156695&order_total_with_vat=189600.95&order_vat=21&payment_method=ideal&payment_status=1&customer_name=t&customer_address=t&customer_city=t&customer_zipcode=t&customer_country=t&customer_email=t%40t&customer_telephone=t&product%5B0%5D=5&product%5B1%5D=5&product%5B2%5D=5&product%5B3%5D=5&product%5B4%5D=5&product%5B5%5D=5&product%5B6%5D=5Salida preferida:
http://somedomain/subdir/someapi/order?transaction_id=FF-58e2451c5aea9×tamp=1491223836&order_total=156695&order_total_with_vat=189600.95&order_vat=21&payment_method=ideal&payment_status=1&customer_name=t&customer_address=t&customer_city=t&customer_zipcode=t&customer_country=t&customer_email=t%40t&customer_telephone=t&product%5B0%5D=5&product%5B1%5D=5&product%5B2%5D=5&product%5B3%5D=5&product%5B4%5D=5&product%5B5%5D=5&product%5B6%5D=5 Función http_build_query :
case 'POST': curl_setopt( $curlHandler, CURLOPT_POST, true ); $url .= '?' . http_build_query( $parameters ); break;Actualmente está funcionando correctamente. El problema es que cuando haces eco de tu URL, la secuencia × hará que tu navegador la reemplace con el símbolo de multiplicación x . Para repetirlo y mostrar la forma correcta en el navegador, intente esto:
echo htmlspecialchars($url);Esto mostrará la URL deseada.
@Novice tenía razón, comentó mi pregunta:
Es solo un problema de visualización en el navegador, pero sus datos de curl serán como los que ha mostrado en su salida preferida, no es necesario agregar nada adicional, ¡simplemente presione y listo! – Novato
Cuando revisé apache access.log, pude ver la cadena de consulta preferida publicada.