小于符号的数组元素未打印


Array element less than sign is not printing

我遇到了一个PHP问题。当我有以下数组时:

$string = array('<','s');
echo $string[0];
echo $string[1];

没有显示

如果我把任何其他特殊字符或整数值放在的位置,它打印得很好

$string = array('<','1');
echo $string[0];
echo $string[1];

输出:<1

$string = array('<','1#');
echo $string[0];
echo $string[1];

输出:<#

我假设您的输出没有按预期显示给您,因为您正在web浏览器中查看它。任何以<后面跟着一个字母的字符将被解释为HTML标记。

如果你查看输出的页面源,你可能会看到你在寻找什么。

我确信PHP有一种方法可以将转义的HTML标记等输出到页面中,但我并不熟悉

$string = array('<','s');
echo htmlentities($string[0]);
echo htmlentities($string[1]);

当您回显'<'时,浏览器假定您打开了一个标记名称&应为">"。如你所知,内容在<amp;>是一个标记&不显示在输出中(标记用于格式化,有时用于设置页面样式)。因此,请改用echo htmlspecialchars($string[0])

小于大于的字符通常用于定义html中的元素,因此您必须定义这些字符应该像"普通字符"一样输出:

&lt; = less than (<) 
&gt; = more than (>)

在您的示例中:

$string = array(&lt;,'1');

看看http://www.ascii.cl/htmlcodes.htm并查看"html名称列"

你也可以看看http://php.net/htmlentities