我遇到了PHP问题。当我有以下数组时:
$string = array('<','s');
echo $string[0];
echo $string[1];
什么都没有显示
如果我使用任何其他特殊字符或整数值代替's'
,则打印正常$string = array('<','1');
echo $string[0];
echo $string[1];
输出:&lt; 1
OR
$string = array('<','1#');
echo $string[0];
echo $string[1];
输出:&lt;#
答案 0 :(得分:2)
我认为您的输出未按预期显示给您,因为您正在Web浏览器中查看它。任何以&lt;开头的东西后跟字母的字符将被解释为HTML标记。
如果您查看输出的页面来源,您可能会看到您要查找的内容。
我确信PHP有办法将转义的HTML标记输出到页面,但我不熟悉它。
答案 1 :(得分:0)
$string = array('<','s');
echo htmlentities($string[0]);
echo htmlentities($string[1]);
答案 2 :(得分:0)
当您回显'&lt;'时,浏览器会假设您打开了一个标记名称&amp;期待'&gt;'。如你所知,里面的内容&lt; &安培; &GT;是一个标签&amp;不在输出上显示(标签用于格式化和有时样式化页面)。所以,请改用echo htmlspecialchars($string[0])
。
答案 3 :(得分:0)
小于和多于字符通常用于定义html中的元素,因此您必须定义这些字符应输出为“normal字符“代替:
< = less than (<)
> = more than (>)
在你的例子中:
$string = array(<,'1');
查看http://www.ascii.cl/htmlcodes.htm并查看“html名称列”