我从数据库中获得了最初使用HTML标签编写的描述:
• Description bullet blah blah
<br /> • Description bullet blah blah
<br /> • Description bullet blah blah
在不久的将来,我将从数据库描述中剥离所有HTML并使用javascript来呈现格式。与此同时,我需要一个简单的功能来剥离所有的断裂和子弹。
我有这个照顾休息时间:
str_replace('<br />', ' ', $row_rsDetails['Description'])
但是,如果不破坏功能,就无法弄清楚如何在不破坏功能的情况下移除六角子弹。我搜索过,也许我错过了答案。有人可以帮忙吗?感谢。
答案 0 :(得分:3)
您可以在array
中使用str_replace
:
$result = str_replace(array('<br />', '•'), ' ', $row_rsDetails['Description']);
答案 1 :(得分:0)
另一个选项(类似于@ AbraCadaver&#39; s)是在新行上写出每个str_replace
:
$string = '• Description bullet blah blah
<br /> • Description bullet blah blah
<br /> • Description bullet blah blah';
$string = str_replace('<br />', ' ', $string);
$string = str_replace('•', ' ', $string);
echo $string;
答案 2 :(得分:0)
您可以使用正则表达式删除这些html实体:
<?php
$string = '• Description bullet blah blah
<br /> • Description bullet blah blah
<br /> • Description bullet blah blah';
$pattern = '/&#\d+;/i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);
?>
希望它可以帮到你
答案 3 :(得分:0)
对待所有十六进制字符可能更好的方法是考虑rawurldecode。
$result = rawurldecode( $string );
这会将所有十六进制转义字符串解码为其原始字符。
另外,关于<br />
代码,您是否考虑过使用
$s2 = preg_replace('<br[^>]*/?>', ' ', $original);
$s3 = preg_replace('</br>', ' ', $s2); // if br tag with explicit closing tag
同样适用于<p>
代码。
这两个正则表达式都不是真正符合HTML的(例如,它们不能正确匹配<br class="fo>o"/>
)。关于在StackOverflow上的regexp中匹配HTML标记,已经有很多信息。如果您的XML输入是硬编码的,那么可能值得考虑。
有关更多信息,请参阅http://de2.php.net/manual/en/function.preg-replace.php。
当然你也可以在preg_replace中拥有数组,就像在str_replace中使用一样。