数组内含'<',奇怪的行为

时间:2012-11-04 20:49:31

标签: php arrays implode

$b = array("one", "two", "three");
$z = implode('<', $b);
var_dump($z);

输出:字符串(13)“一个

任何人都可以解释这个。

PHP 5.4.4

3 个答案:

答案 0 :(得分:3)

查看html源结果,真正的结果是:

string(13) "one<two<three"
正如他所提到的那样:

  

这是应该做的。你在看你的   浏览器,它不会按原样显示结果,但会尝试   将其渲染为HTML。

所以如果你想把它看作纯文本,那么简单的过滤html标签:

<?php
$b = array("one", "two", "three");
$z = implode('<', $b);
$z = htmlspecialchars($z);
var_dump($z);

答案 1 :(得分:2)

>php implode.php
string(13) "one<two<three"

这是应该做的。您正在浏览器中查看它,它不会按原样显示结果,但会尝试将其呈现为HTML。

答案 2 :(得分:0)

如果您希望打印文本为html,请使用特殊字符集:

<?php
$ar = array('one', 'two'/** ... **/);
print implode('&lt;', $ar);

查看所有特殊字符集:http://www.degraeve.com/reference/specialcharacters.php