我将它存储在我的MySQL InnoDB UTF8数据库中:
<p>
长度为5英尺1英寸(155厘米),推出了这款“Baby”三角钢琴 在20世纪30年代,具有更大的强大和丰富的基调 钢琴。这款钢琴很小,几乎适合任何房间 使用相同的材料和技术手工制作 制作我们的音乐会三角钢琴。</p>
当我回显strip_tags($ string)时,PHP返回:
Introduced 5\'1\
就是这样。我发现了一个类似的报告错误here(受影响有斜杠,而不是单引号/双引号)但它已经解决了。我正在使用PHP 5.3.6。
知道如何解决这个问题而无需使用preg_replace
?
答案 0 :(得分:0)
这是输入内容吗?因为引用会结束它。
尝试htmlentities(strip_tags($ string));
<input type="text" value="Introduced 5\'1\" (155......" />
答案 1 :(得分:0)
尝试以下方法:
<?php
$pattern = '/<.*?>/';
$string = '<p>At 5\'1" (155cm) in length, this "Baby" grand piano was introduced in the 1930\'s and features the powerful and rich tone of a much larger piano. Small enough to fit nicely into almost any room, this piano is handcrafted using the same materials and techniques that go into making our concert grand pianos.</p>';
echo preg_replace($pattern, '', $string);
?>
答案 2 :(得分:0)
这是PyroCMS使用的Lex解析器的问题。修复可以在这里找到:
https://github.com/happyninjas/lex/commit/ff9aa30554fce47a8bfb6dc7c94143afc2fd8f93
我也承诺改变PyroCMS。希望它能在下一个版本中实现。