我遇到一个特殊字符§
的问题。我想用单§
替换多次出现的§
。以下正则表达式适用于Regex 101。
$file_data = file_get_contents($file_name);
$file_data = preg_replace('/\§+/g', '§',$file_data);
改变了
§§§§§§§§§这个免费的3D机器人游戏可以重新定义孩子们如何学习编码数字趋势 孩子们很难编码。直到最近,它主要是......
到
§这个免费的3D机器人游戏可以重新定义孩子们如何学习编码数字趋势 孩子们很难编码。直到最近,它主要是......
但是,我上传它后,它无法在服务器上运行。这是PHP的var_dump($file_data)
§§§§§§§§ 这款免费的3D机器人游戏可以重新定义孩子们如何学习编码数字趋势 孩子们很难编码。直到最近,它主要是......
因此,在Â
中的每个§
之前似乎还有一个字符var_dump
。当以HTML格式回显时,额外字符Â
不会显示在网页上。它只是在普通PHP var_dump
期间出现。如何在PHP中使用正则表达式替换多次出现的§
?
答案 0 :(得分:2)
您需要设置u
(utf-8)修饰符:
来自perlre文档:
<强> / U 强> 表示在模式匹配时使用Unicode规则。在ASCII平台上,这意味着128到255之间的代码点采用其Latin-1(ISO-8859-1)含义(与Unicode&#39; s相同)....
$output = preg_replace('/§+/u', '§', $input);
// ^
答案 1 :(得分:0)
$str="§§§§§§§§§This free 3D robot game could redefine how kids learn to codeDigital Trends It's hard to get kids to code. Up until very recently, it was largely ....";
$pttn='@\§{2,}@um';
echo preg_replace( $pttn,'§',$str );
/* will output */
/*
§This free 3D robot game could redefine how kids learn to codeDigital Trends It's hard to get kids to code. Up until very recently, it was largely ....
*/