ホームページ  >  記事  >  バックエンド開発  >  PHP URL 中国語エンコーディング cn_urlencode function_PHP チュートリアル

PHP URL 中国語エンコーディング cn_urlencode function_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:14:13935ブラウズ

PHP で URL をエンコードするには、urlencode() または rawurlencode() を使用できます。この 2 つの違いは、前者はスペースを '+' としてエンコードするのに対し、後者はスペースを '%20' としてエンコードすることです。エンコード時に URL の一部のみをエンコードする必要があることに注意してください。そうでないと、URL 内のコロンとバックスラッシュもエスケープされます。詳細な説明は次のとおりです:

string urlencode (string str)

-_ を除くすべての非英数字文字がパーセント記号 (%) に置き換えられ、その後に 2 つの 16 進数が続き、スペースがプラス記号 (+) としてエンコードされた文字列を返します。


例1: urlencode関数とrawurlencode関数の違い

コードは次のとおりです コードをコピー
$str='ブログ';
echo urlencode($str);
echo "
";
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]);
$url をエコー;
?>

結果:

http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2

おそらく次の URL エンコード関数を使用します

コードは次のとおりです コードをコピー
関数 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);
}
}
$url を返します;
}
echo cn_urlencode($url);
?>

URL結果:

http://www.baidu.com/s?wd=%E5%8D%9A%20%E5%AE%A2

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629031.html技術記事 PHP で URL をエンコードするには、urlencode() または rawurlencode() を使用できます。この 2 つの違いは、前者はスペースを「+」としてエンコードし、後者はスペースを「%20」としてエンコードすることです。ただし、注意が必要です。 ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。