0

我正在编写代码: <?PHP $where='<something'; echo $where; ?> 但它不会回显任何内容,直到我将字符串 $where 更改为 '< something'(在“<”之后添加一个空格),为什么?

它可能会将 < 编译为某些标记语言的开头。


Jquery Slider 有时会出现在奇怪的位置

我的 jquery 滑块有问题。有时滑块会在一个奇怪的位置打开,就像这里的屏幕截图一样:http: //pixelcravers.ca/screens/slider-problem.png 我注意到当我右键单击滑块的容器区域并进行检查时谷歌浏览器中的元素滑块向右移动到正确的位置。

我的网站链接是http://pixelcravers.ca

4

3 回答 3

1

小于<和大于>号是 html 实体或保留符号来表示 html 标签。要显示它们,您需要使用实体名称或实体编号。在“小于”的情况下,它们分别是 < 和 <。

所以改变你的代码是这样的:

$where='&lt;someting'; echo $where;

或者更好

$where='&lt;someting'; echo htmlentities($where);

正如@Waleed Kahn 正确建议的那样。

于 2013-02-16T02:38:34.820 回答
0

在浏览器中,<引入了一个 HTML 标签。如果你的字符串是$where = "<img"你可能会得到这样的结果:

图片 http://example.com/

每当你输出文本时,你应该总是运行htmlentitieshtmlspecialchars或者只是str_replace("<","&lt;",$where);为了逃避 HTML 被处理(最后一个仍然允许 &characters;)

于 2013-02-16T02:41:41.627 回答
0

这是因为浏览器将左括号<, 视为 HTML 标记。在浏览器中,右键单击页面并选择“查看源代码”。

如果您有终端,则可以使用:

php -f file.php

这将在不解析的情况下输出原始内容。

如果您想在浏览器中查看代码,则需要使用以下代码对 HTML 字符进行编码htmlentities()

$where = '<something';
echo htmlentities($where); // &lt;something
于 2013-02-16T02:44:20.750 回答