&引用;分析错误:无效的数字文字“0”;PHPCR039

&引用;分析错误:无效的数字文字“0”;PHPCR039,php,str-replace,chr,Php,Str Replace,Chr,我试图在php中将一个奇怪的语音标记转换成一个正常的 $str = str_replace(chr(039), "'", $str); 我发现它是代码039从许多来源,包括 但它会导致“解析错误:无效数字文字”错误 我的全部职能: function sanitiseString($str){ $str = str_replace(chr(130), ',', $str); // baseline single quote $str = str_replace(chr(132), '"'

我试图在php中将一个奇怪的语音标记转换成一个正常的

$str = str_replace(chr(039), "'", $str);
我发现它是代码039从许多来源,包括

但它会导致“解析错误:无效数字文字”错误

我的全部职能:

function sanitiseString($str){

$str = str_replace(chr(130), ',', $str);    // baseline single quote
$str = str_replace(chr(132), '"', $str);    // baseline double quote
$str = str_replace(chr(133), '...', $str);  // ellipsis
$str = str_replace(chr(039), "'", $str);    // left single quote                

$str = str_replace(chr(145), "'", $str);    // left single quote
$str = str_replace(chr(146), "'", $str);    // right single quote
$str = str_replace(chr(147), '-', $str);    // double hyphon        
$str = str_replace(chr(150), '-', $str);    // en dash  
$str = str_replace(chr(151), '-', $str);    // em dash  
$str = str_replace(chr(148), '"', $str);    // right double quote                               
$str = str_replace(chr(034), '"', $str);    // weird double speech mark
$str = str_replace(chr(034), '"', $str);    // weird double speech mark

$str = iconv("UTF-8","UTF-8//IGNORE",$str); //ignore everything else unrecognised.

$str = str_replace("’", "'", $str);  
$str = str_replace('“', '"', $str);  
$str = str_replace('”', '"', $str);  

return $str;        
}

这是因为在PHP7中处理整数的方式不同,因为以0开头的数字被视为八进制值。 八进制数的每个位置限制为8位,从0到7

以前在PHP5八进制中,包含无效数字的部分被截断。 示例:0239被视为023

将数字写成字符串,如下所示:

$str = str_replace(chr('0039'), "'", $str);

039
是无效的表示法值,您可以使用前导的
0
调用该值。你想要的只是
chr(39)
0
完全没有意义


话虽如此,
str_replace(chr(39),“,$str)
不会起任何作用,因为
chr(39)
“,”
相同,可能重复感谢回复,要么不起作用,要么可能引用了不同的代码;它对返回的字符串没有影响:/具体地说,我正在尝试更改这个奇怪的左单语音标记(这是在MS Word上键入['@]键时的标记)。不客气。是在我这边工作的tho,但是您的代码没有做任何事情,因为chr(039)与“'”相同,因此,您要用相同的字符替换一个字符。您可以在此处查看:。