API に従来の GET リクエストを送信しようとしています: http://mywebsite.com?arg1=val1&arg2=val2。問題は、 val1またはval2に「&」または「?」が含まれている場合、どうすればよいかわかりません。キャラクター。私はurlencode()関数を知っていますが、引数を区切るために使用される「&」と引数に含まれる「&」との間に違いがある必要があるため、この場合に役立つかどうかはわかりません。
誰でも助けることができますか?ありがとう
API に従来の GET リクエストを送信しようとしています: http://mywebsite.com?arg1=val1&arg2=val2。問題は、 val1またはval2に「&」または「?」が含まれている場合、どうすればよいかわかりません。キャラクター。私はurlencode()関数を知っていますが、引数を区切るために使用される「&」と引数に含まれる「&」との間に違いがある必要があるため、この場合に役立つかどうかはわかりません。
誰でも助けることができますか?ありがとう
おそらく、使用してみることができますhttp_build_query()
。
http://php.net/http_build_query
$data = array('foo'=>'bar',
'baz'=>'a&c',
'cow'=>'d?f');
echo http_build_query($data); // foo=bar&baz=a%26c&cow=d%3Ff
これらの変数を手動で渡す場合は urlencode() を使用する必要があります。そうでない場合は、ブラウザが自動的にこれを行います。
また、PHP 側では、$_GET、$_COOKIE、$_POST に対して PHP が行うため、urldecode() は必要ありません。
私は個人的にこれを行います:
$your_array = array('1'=>'something', '2'=>'another thing!');
$send_in_url = json_encode($your_array);
$send_in_url = base64_encode($send_in_url);
header('Location: www.mywebsite.com?code='.$send_in_url);
API で次のことを行います。
$code = base64_decode($_GET['code']);
$array = json_decode($code);
echo $array[1]; // this will output "something"