【问题标题】:str_replace with special charactersstr_replace 用特殊字符
【发布时间】:2017-04-18 18:07:59
【问题描述】:
$fetched_column['title'] = str_replace(' ', '<SP>', $fetched_column['title']);

echo $fetched_column['title'] . '<br>';

当它回显时,它会去除 white_space,但不会将其替换为 &amp;lt;SP&amp;gt;。我猜是因为&amp;lt;&amp;gt;。不知道如何解决这个问题,所以它会回显 &amp;lt;SP&amp;gt; 来代替 white_space?

【问题讨论】:

  • 因为 &lt;something&gt; 被浏览器视为 HTML 标记并且不显示(查看源代码)。你想要&amp;lt;&amp;gt;
  • 你需要使用htmlspecialchars()函数让它显示到&amp;lt;&amp;gt;。从技术上讲,它不应该是&amp;lt;SP&amp;gt;,而是&amp;lt;SP&amp;gt;
  • 你不应该使用 str_replace 它是不推荐使用的功能。您应该改用 preg_replace
  • @Peter 你能强调一下php.net/manual/en/function.str-replace.php 被弃用的地方吗? ??????
  • @Peter 必须与 ereg_replace 混淆。

标签: php character echo str-replace


【解决方案1】:

如果你看到 view-source 你可以看到你被替换的代码,但是因为 HTML 试图将它解析为某种东西(例如指令),你在解析的 web 视图中看不到它。

正是出于这个原因,您可以使用 html 实体。

代码是:

$fetched_column['title'] = str_replace(' ', '&lt;SP&gt;', $fetched_column['title']);

echo $fetched_column['title'] . '<br>';

【讨论】:

  • 是的,这就像一个魅力,没有足够的积分来投票给你,但希望在不久的将来有人会偶然发现这个页面并提出同样的问题。
【解决方案2】:

您需要使用htmlspecialchars()htmlentities() 函数使其显示为&amp;lt;&amp;gt;。从技术上讲,它不应该是&amp;lt;SP&amp;gt;,而是&amp;lt;SP&amp;gt;

将您的代码更改为:

echo htmlentities($fetched_column['title']) . '<br>';

或者您可以在第一次尝试替换时按照正确的格式进行:

$fetched_column['title'] = str_replace(' ', '&lt;SP&gt;', $fetched_column['title']);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-03
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 2016-02-09
    相关资源
    最近更新 更多