【问题标题】:php string concatenation "A<"."B" does not workphp字符串连接“A<”。“B”不起作用
【发布时间】:2014-05-04 17:32:37
【问题描述】:

我正在编写一个函数来输出 HTML 元素,问题是:当我尝试连接这两个字符串时:

$tag = "<" . "tag";

指令 echo $tag 不输出任何内容。怎么了

【问题讨论】:

  • &amp;lt; 被浏览器解析。请改用&amp;lt;
  • @Ejay,重新阅读问题。原始海报想要渲染标签,而不是文字 &amp;lt; 字符。 @m_junior:当您在 Web 浏览器中查看源代码时会发生什么?因为像&lt;div&gt; 这样的标签将不可见,因为它将被解析为 HTML 代码。
  • 杰克你是对的。我看错了问题
  • @m_junior 你能在你的问题中提供更多背景信息吗?
  • @m_junior 是的,请提供更多上下文,也许还有更多代码。因为如果你打印那里的标签无论如何都会被破坏所以我想它还有更多的东西然后就是那一行?

标签: php html string string-concatenation


【解决方案1】:

如 cmets 中所述,&lt; 等特殊字符将被浏览器解析为 HTML,因此您不会按预期看到它们。

几乎是一样的:

$tag = 'p';

echo '<' . $tag '>' . Test . '</' . $tag . '>';

与此相同

echo '<p>' . Test . '</p>';

所以在脚本执行后你会看到

Test

在浏览器中。但是在查看源时,它将是

<p>Test</p>

如果出于某种原因您想查看 HTML 标记,则需要使用内置函数 htmlentities() 转义特殊字符。

在你的情况下,你可以只准备一个字符串,然后像这样回显它

echo htmlentities($string);

【讨论】:

    【解决方案2】:

    如果标签是指 HTML 实体,则它不会在浏览器中显示。您可能需要执行“查看源代码”来查看 echo 调用创建的内容。

    【讨论】:

      猜你喜欢
      • 2010-12-21
      • 2017-11-23
      • 2018-08-11
      • 2022-01-04
      • 2013-02-24
      • 2021-01-26
      • 2018-09-03
      • 2013-02-16
      • 1970-01-01
      相关资源
      最近更新 更多