我正在抓取一些推文,并将它们打印在我的网站上,并且 curl 的撇号被呈现为“—。这是不好的。我应该通过哪个php函数运行字符串,以使这些奇怪的字符显示为更接近于'的东西?
最佳答案
您可以尝试使用以下功能:
function htmlallentities($str){
$res = '';
$strlen = strlen($str);
for($i=0; $i<$strlen; $i++){
$byte = ord($str[$i]);
if($byte < 128) // 1-byte char
$res .= $str[$i];
elseif($byte < 192); // invalid utf8
elseif($byte < 224) // 2-byte char
$res .= '&#'.((63&$byte)*64 + (63&ord($str[++$i]))).';';
elseif($byte < 240) // 3-byte char
$res .= '&#'.((15&$byte)*4096 + (63&ord($str[++$i]))*64 + (63&ord($str[++$i]))).';';
elseif($byte < 248) // 4-byte char
$res .= '&#'.((15&$byte)*262144 + (63&ord($str[++$i]))*4096 + (63&ord($str[++$i]))*64 + (63&ord($str[++$i]))).';';
}
return $res;
}
称呼:
$str = htmlallentities($str);
这会将utf-8-chars更改为htmlentities,因此您可以将它们显示为不同的编码。
关于php - 撇号表示为–tm。什么PHP函数会将其显示为'? something_Decode?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4583369/