0

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

<p>这架“婴儿”三角钢琴的长度为 5'1"(155 厘米),于 1930 年代推出,具有更大钢琴的强劲和丰富的音色。小到可以很好地适应几乎任何房间,这架钢琴是用手工制作的与制作我们的音乐会三角钢琴相同的材料和技术。</p>

当我回显 strip_tags($string) 时,PHP 会返回:

Introduced 5\'1\

就是这样。我在这里发现了一个类似的报告错误(影响有斜杠,而不是单/双引号),但它已解决。我正在使用 PHP 5.3.6。

知道如何在不需要使用的情况下解决这个问题preg_replace吗?

4

3 回答 3

0

这是在输入里面吗?因为报价会结束它。

尝试 htmlentities(strip_tags($string));

<input type="text" value="Introduced 5\'1\" (155......" />
于 2012-07-02T13:38:21.607 回答
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);

?>
于 2012-07-02T13:41:10.150 回答
0

这是 PyroCMS 使用的 Lex 解析器的问题。可以在此处找到修复程序:

https://github.com/happyninjas/lex/commit/ff9aa30554fce47a8bfb6dc7c94143afc2fd8f93

我还提交了对 PyroCMS 的更改。希望它在下一个版本中实现。

于 2012-07-02T21:47:35.490 回答