2

次のような URL 文字列があります。

http://www.google.com/cse?cx=017840637368510444960:ny1lmky7r-0&client=google-csbe&output=xml_no_dtd&q=simon+g

この URL を ajax から php スクリプトに単一の文字列変数として送信する必要があります。

URL文字列自体の変数が原因で、いくつかの変数に分割され続けるため、問題が発生しています。わかる?これを単一の文字列として送信するにはどうすればよいですか??

ありがとう!!!

4

6 に答える 6

6

エンコードする必要があります。

PHP の場合:urlencode()

$str = urlencode('http://....');

Javascript の場合: encodeURIComponent

str = encodeURIComponent('http://...');
于 2009-05-22T14:10:20.833 に答える
4

URLをurlencodeする必要があります。次に、それを受け取るページでurldecodeを行います。

したがって、URLは次のようになります

http%3A%2F%2Fwww.google.com%2Fcse%3Fcx%3D017840637368510444960%3Any1lmky7r-0%26client%3Dgoogle-csbe%26output%3Dxml_no_dtd%26q%3Dsimon%2Bg%0D%0A
于 2009-05-22T14:09:24.690 に答える
1
<?php 
// In your URL-emitter page
$decoded_url = "http://www.google.com/cse?cx=017840637368510444960:ny1lmky7r-0&client=google-csbe&output=xml_no_dtd&q=simon+g";
$link_addr = "/index.php?encodedurl=".urlencode($decoded_url);

echo '<a href="'.$link_addr.'">Click me</a>';


// in your URL-reciever page (here the same page)
if(array_key_exists("encodedurl",$_GET)) {
    echo 'decoded url='.urldecode($_GET["encodedurl"]);
}
于 2009-05-22T14:21:42.903 に答える
1

このようにjavascriptでescape()する必要があると思います

escape("cx=017840637368510444960:ny1lmky7r-0&client=google-csbe&output=xml_no_dtd&q=サイモン+g")

編集: encodeURIComponent()が最適なソリューションであることが検索されました。

escape()、encodeURI()、encodeURIComponent() の適切な比較については、 http: //xkr.us/articles/javascript/encode-compare/を参照してください。

于 2009-05-22T14:11:02.597 に答える
1

escape()またencodeURIComponent()

于 2009-05-22T14:09:45.250 に答える
-1

また、暗号化を試すこともできます(base64など)

于 2009-05-22T14:10:00.133 に答える