我遇到了一个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中的元素,因此您必须定义这些字符应该像"普通字符"一样输出:
< = less than (<)
> = more than (>)
在您的示例中:
$string = array(<,'1');
看看http://www.ascii.cl/htmlcodes.htm并查看"html名称列"
你也可以看看http://php.net/htmlentities