PHP在使用strip_标记时截断字符串

PHP在使用strip_标记时截断字符串,php,escaping,pyrocms,strip-tags,Php,Escaping,Pyrocms,Strip Tags,我将其存储在MySQL InnoDB UTF8数据库中: 这款“婴儿”大钢琴的长度为5英尺1英寸(155厘米) 在20世纪30年代,以一个更大的城市的强大而丰富的基调为特色 钢琴。这架钢琴很小,几乎可以放进任何房间 手工制作,使用的材料和技术与 制作我们的音乐会大钢琴。 当我回显strip_标记($string)时,PHP返回: 5\1\ 就是这样。我发现了一个类似的报告错误(受斜杠影响,不是单引号/双引号),但它已经解决了。我使用的是PHP5.3.6 你知道我如何解决这个问题而不需要使用pre

我将其存储在MySQL InnoDB UTF8数据库中:

这款“婴儿”大钢琴的长度为5英尺1英寸(155厘米) 在20世纪30年代,以一个更大的城市的强大而丰富的基调为特色 钢琴。这架钢琴很小,几乎可以放进任何房间 手工制作,使用的材料和技术与 制作我们的音乐会大钢琴。

当我回显strip_标记($string)时,PHP返回:

5\1\

就是这样。我发现了一个类似的报告错误(受斜杠影响,不是单引号/双引号),但它已经解决了。我使用的是PHP5.3.6


你知道我如何解决这个问题而不需要使用
preg\u replace

这是输入吗?因为引用将结束它

尝试htmlentities(strip_标记($string))

尝试以下操作:


这是PyroCMS使用的Lex解析器的一个问题。可以在此处找到修复方法:


我还将更改提交给PyroCMS。希望它能在下一个版本中实现。

strip_tags()
不是很安全。看到了吗(可能有点偏颇)请发布检索、剥离和显示此内容的PHP代码。此错误似乎不是此错误的来源。无法使用5.4.5-dev复制。您可以尝试
stripslashes(strip_标记(addslashes($str)))
作为一种解决方法。我不知道这是否有帮助,因为我无法复制它。我使用PyroCMS/PyroStreams,两者都使用Lex解析器。因此我构建了一个插件,只做一个简单的strip_标记。我的Lex标记如下:{{有用:striptags value=short_description}},我的有用类如下所示:function striptags(){return strip_tags($this->attribute('value'));}好吧,所以我把行return strip_tags($this->attribute('value'))改为只返回$this->attribute('value'),我得到了同样的错误。这告诉我这不是strip标签错误,而是ProCMS或Lex的错误。
$pattern='/]+>
对于大字符串应该更快。不过“使用正则表达式解析“html”不是一个好主意。我同意尝试使用正则表达式解析html不是一个好主意。然而,正则表达式可以用于完成简单的任务,如标记。
<input type="text" value="Introduced 5\'1\" (155......" />