<?php
/**
* 将中文转为Html实体
* Turning Chinese into Html entity
* Author QiangGe
* Mail [email protected]
*
*/
$str = <<<EOT
你好 world
EOT;
function ChineseToEntity($str) {
return preg_replace_callback(
'/[\x{4e00}-\x{9fa5}]/u', // utf-8
// '/[\x7f-\xff]+/', // if gb2312
function ($matches) {
$json = json_encode(array($matches[0]));
preg_match('/\[\"(.*)\"\]/', $json, $arr);
/*
* 通过json_encode函数将中文转为unicode
* 然后用正则取出unicode
* Turn the Chinese into Unicode through the json_encode function, then extract Unicode from regular.
* I think this idea is seamless.
*/
return '&#x'. str_replace('\\u', '', $arr[1]). ';';
}, $str
);
}
echo ChineseToEntity($str);
// 你好 world