【问题标题】:use of <> in php and in wamp在 php 和 wamp 中使用 <>
【发布时间】:2016-04-26 10:57:23
【问题描述】:

这一定是众所周知的,但我找不到任何相关的东西。 php中的字符串在wamp环境中不能有&amp;lt;&amp;gt;这两个字符。在实时服务器中一切正常。例如在沼泽下

$teststring = 'aaa<bbb';
echo $teststring;

产生aaa

我想使用str_replace()preg_replace() 编辑html 文件。 我想我必须修改 php 设置,但我不知道如何。

【问题讨论】:

  • 查看页面源代码
  • 您的问题到底是什么?如果您在浏览器中查看输出,它会将&lt;bbb 解释为 html 标记,因此不会显示...
  • 你应该用更多的上下文来解释你的问题。目前非常令人困惑,特别是因为不清楚您指的是什么环境,另请参阅下面的回答。
  • Balder-dash &amp;lt; 只是另一个字符,除非您尝试在浏览器中查看它,因为它看起来像您启动 HTML 标记但没有完成它,&lt;b&gt;在这种情况下,忘记了结束&amp;gt;
  • 如果要添加&lt;&gt;,请使用&amp;gt;(大于..)或&amp;lt;(小于)

标签: php wamp


【解决方案1】:

我认为它与 WAMP 没有任何关系,我什至不确定我是否完全理解这种情况,因为您说“php 中的字符串在 wamp 环境中不能包含字符 ”(我将其解释为:它不适用于 WAMP),然后直接“在实时服务器中一切正常。例如在 wamp 下”(我将其解释为:它确实适用于 WAMP)。

但我认为问题在于您将杂散的未编码 &amp;lt; 添加到 HTML 输出中。想想正常情况下会发生什么:

<?php echo "I can write <em>emphasized</em> text!"; ?>

...会导致:

我会写强调的文字!

...而不是:

I can write &lt;em&gt;emphasized&lt;/em&gt; text!

因为您可以从 PHP 输出 HTML,并且浏览器会像读取任何静态 HTML 页面一样读取它。现在,如果您只包含一个随机的&amp;lt;,它将被解释为 HTML 为said in the comments,并且无效。

因此,为了在浏览器中显示文字 &amp;lt;,必须将其编码为 HTML 实体,在本例中为 &amp;lt;,例如3 &amp;lt; 4 而不是 3 &lt; 4。这可以使用函数htmlentities 自动完成。例如:

<?php echo htmlentities("This is a string with < and > and & and other stuff like this which has to be encoded."); ?>

【讨论】:

  • 感谢您的回答,在我的无知中,我不知道 在字符串中可能有意义,并且我理解为什么使用 wamp 和 echo 的测试不起作用。我试图简化测试。我在 wamp 下使用 php 代码使用 str_replace 和 preg_replace 编辑 html 文件。我必须将编辑应用于实际的 html 并检查结果。再次感谢
  • 如果您只想查看 PHP 文件的原始输出,而不让浏览器将其解释为 HTML,您可以使用浏览器中的“查看页面源代码”选项或在开头添加此选项您的文件(它会告诉浏览器将您的输出解释为纯文本):header("Content-Type: text/plain"); - 澄清一下,&amp;lt;/&gt; 在 PHP 本身的字符串中没有任何意义。 PHP 只是输出它们,而您的浏览器是试图在其中寻求意义的浏览器(不是 PHP)。
  • 我已经在CherryDT的答案上打勾了,没必要再多回答了,有点尴尬!!我是一个 76 岁的人,正在写他的第一个网站!不知道我还需要做什么才能解决这个问题。 dnjfer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
相关资源
最近更新 更多