参考this评论。
$values = array("foo","bar");
var_dump($value)
导致:
array (size=2)
0 => string 'foo' (length=3)
1 => string 'bar' (length=3)
内爆:
$value = "<span>".implode('</span>,<span>', $values)."</span>";
现在var_dump($value)
会产生:
string '<span>foo</span>,<span>bar</span>' (length=33)
微调:
$value = trim($value,"<span></span>");
现在var_dump($value)
会产生:
string 'foo</span>,<span>bar' (length=20)
但它仍然应该导致:
string '<span>foo</span>,<span>bar</span>' (length=33)
答案 0 :(得分:2)
trim
函数适用于字符级别,而不是文本或HTML标记级别。
执行trim($value, "<span></span>")
时,您要求PHP删除文本<span></span>
中显示的所有前导和尾随字符。这与执行trim($value, "/<>anps")
您应该使用str_replace
代替。
或者,使用array_filter
删除数组中的空白条目 implode
之前。
例如:
$str = implode("</span>,<span>", array_filter($values, 'strlen'));