17

API の 1 つで処理するためにエンコードされた URL が必要ですが、完全にエンコードされた URL が必要です。たとえば、次の URL から:

http://test.site-raj.co/999999?lpp=1&px2=IjN

次のように、エンコードされた URL になる必要があります。

http%3a%2f%test%site%2draj%2eco%2f999999%3flpp%3d1%26px2%3dIjN

上記のようなドット (.) やハイフン (-) も含めて、すべての記号をエンコードする必要があります。

4

3 に答える 3

25

これを試して。関数内で複数回使用している場合...

$str = 'http://test.site.co/999999?lpp=1&p---x2=IjN';
$str = urlencode($str);
$str = str_replace('.', '%2E', $str);
$str = str_replace('-', '%2D', $str);
echo $str;
于 2012-08-23T13:51:46.080 に答える
10

これにより、普通の文字や数字ではないすべての文字がエンコードされます。これは、標準のurldecodeまたはrawurldecodeを使用してデコードできます。

function urlencodeall($x) {
    $out = '';
    for ($i = 0; isset($x[$i]); $i++) {
        $c = $x[$i];
        if (!ctype_alnum($c)) $c = '%' . sprintf('%02X', ord($c));
        $out .= $c;
    }
    return $out;
}
于 2012-08-23T14:02:39.733 に答える
-4

rawurlencode を使用しない理由

例えばrawurlencode("http://test.site-raj.co/999999?lpp=1&px2=IjN")

于 2013-02-11T14:10:38.740 に答える