gpt4 book ai didi

php - 为什么我的正则表达式删除空格?

转载 作者:可可西里 更新时间:2023-11-01 00:52:50 24 4
gpt4 key购买 nike

$str = "& &svnips   Â ∴ ≈ osidnviosd & sopinsdo";   
$regex = "/&[^\w;]/";
echo preg_replace($regex, "&", $str);

我正在尝试用编码的符号替换所有未编码的符号。
问题是它删除了 &sopinsdo 之间的空格。

知道为什么吗?

最佳答案

为什么要使用正则表达式?为什么不使用 htmlspecialchars()

echo htmlspecialchars($str, ENT_NOQUOTES, 'UTF-8', false);

注意第四个参数。它告诉它不要对任何东西进行双重编码。所以基本上,这将把所有 <进入&lt; , 所有 >进入&gt;和所有 &不属于现有实体的 &amp;

但是,如果你必须使用正则表达式,你可以这样做:

$regex = '/&([^\w;])/';
echo preg_replace($regex, '&amp;\1', $str);

基本上,它保存非单词字符,然后将其添加回来...

关于php - 为什么我的正则表达式删除空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3477744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com