PHP で URL をエンコードするには、urlencode() または rawurlencode() を使用できます。ただし、前者はスペースを「+」としてエンコードし、後者はスペースを「%20」としてエンコードする点に注意してください。エンコードするときは、URL の一部のみをエンコードする必要があります。エンコードしないと、URL 内のコロンとバックスラッシュもエスケープされます。詳細な説明は次のとおりです:
コードをコピーします コードは次のとおりです:
string urlencode( string str)
-_ を除く、この文字列内のすべての非英数字文字を含む文字列を返します。はパーセント記号 (%) とそれに続く 2 つの 16 進数に置き換えられ、スペースはプラス記号 (+) としてエンコードされます。
例 1: urlencode 関数と rawurlencode 関数の違い コードをコピーします コードは次のとおりです:
$str='blog'
echo urlencode($str);
echo "< ;br>";
echo rawurlencode($str);
url 結果:
コードをコピー コードは次のとおりです:
%B2%A9+%BF%CD
%B2%A9% 20%BF%CD
例 2: URL 中国語エンコード方式
URL:「http://www.baidu.com/s?wd=blog」から URL:「http://www.baidu」に変換します.com/s?wd=% E5%8D%9A%20%E5%AE%A2";
コードをコピーします コードは次のとおりです:
$url='http://www .baidu.com/s?wd=blog';
$arr=explode('=',$url);
$url=$arr[0].'='.rawurlencode($arr[1]); echo $url;
結果:
http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2
次の URL エンコード関数を使用する可能性があります
コードをコピーします コードは次のとおりです:
function cn_urlencode( $url){
$pregstr = "/[x{4e00}-x{9fa5}]+/u";//UTF-8 中国語正規
if(preg_match_all($pregstr,$url,$matchArray)){/ / 中国語と一致し、配列を返します
foreach($matchArray[0] as $key=>$val){
$url=str_replace($val, urlencode($val), $url);//翻訳を中国語に置き換えます
}
if(strpos($url,' ')){//スペースがある場合
$url=str_replace(' ','%20' ,$url);
}
}
return $url
}
url 結果:
http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE% A2
http://www.bkjia.com/PHPjc/824958.html
www.bkjia.com本当http://www.bkjia.com/PHPjc/824958.html技術記事 PHP で URL をエンコードするには、urlencode() または rawurlencode() を使用できます。この 2 つの違いは、前者はスペースを「+」としてエンコードし、後者はスペースを「%20」としてエンコードすることです。ただし、注意が必要です。 ..