【问题标题】:"Parse error: Invalid numeric literal" php chr 039“解析错误:无效的数字文字”php chr 039
【发布时间】:2019-01-04 08:40:10
【问题描述】:

我正在尝试将奇怪的单个语音标记转换为 php 中的普通语音标记。

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

我从包括https://www.atwebresults.com/ascii-codes.php?type=2在内的许多来源发现它是代码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;        
}

【问题讨论】:

标签: php str-replace chr


【解决方案1】:

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

话虽如此,str_replace(chr(39), "'", $str) 不会做任何事情,因为chr(39)"'" 相同。

【讨论】:

    【解决方案2】:

    这是因为 PHP7 如何处理整数,因为从 0 开始的数字被视为八进制值。 八进制数的每个位置限制为 8 位,从 0 到 7。

    以前在 PHP5 八进制中包含无效数字被截断。 示例:0239 被当作 023。

    将数字写成这样的字符串应该可以:

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

    【讨论】:

    • 感谢您的回复,这要么不起作用,要么可能指的是不同的代码;它对返回的字符串没有影响:/ 具体来说,我正在尝试更改这个奇怪的左单语音标记'(这是您在 MS Word 上键入 ['@] 键时的那个)。
    • 不客气。正在我这边工作,但是您的代码什么也不做,因为 chr(039) 与“ ' ”相同,因此,您正在用相同的字符替换一个字符。你可以在这里查看:3v4l.org/qmc3d.
    猜你喜欢
    • 2021-07-14
    • 2017-04-05
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多