如何使用PHP str_replace使用HTML标签替换htmlentities

时间:2017-07-19 06:49:45

标签: php html html-entities

我有如下内容。

我希望将<pre></pre>转换为<p> </p>。但我无法实现它。以下是一个例子

$content = "<pre>This is a pre text &#13; I want to convert it to paragraphs ";

print_r(str_replace(array('<pre>', '</pre>', '&#13;'),array('<p>', '</p>', '<br/>'),htmlspecialchars($content)));

但我得到了输出。有人可以帮我解决。提前致谢

3 个答案:

答案 0 :(得分:2)

在更换字符串之前,您正在更改$content

$content = "<pre>This is a pre text &#13; I want to convert it to paragraphs ";

print_r(htmlspecialchars($content));

// returns    &lt;pre&gt;This is a pre text &amp;#13; I want to convert it to paragraphs 

这些都不符合您的str_replace

删除htmlspecialchars(),您将获得所需的输出。

$content = "<pre>This is a pre text &#13; I want to convert it to paragraphs ";

print_r(str_replace(array('<pre>', '</pre>', '&#13;'),array('<p>', '</p>', '<br/>'),$content));

//returns    <p>This is a pre text <br/> I want to convert it to paragraphs 

答案 1 :(得分:0)

你的代码应该是这样的,以获得预期的输出。

<?php
    $content = "<pre>This is a pre text </pre> &#13; I want to convert it to paragraphs";
    print_r(htmlspecialchars(str_replace(array('<pre>', '</pre>', '&#13;'),array('<p>', '</p>', '<br/>'),$content)));
?>

答案 2 :(得分:-1)

您可以通过执行以下操作来获取所需的输出而无需删除htmlspecialchars()函数:

$content = "<pre>This is a pre text &#13; I want to convert it to paragraphs ";

print_r(str_replace(array('&lt;pre&gt;', '&lt;/pre&gt;', '&amp;#13;'),array('<p>', '</p>', '<br/>'),htmlspecialchars($content)));