php implode在空格上打破

时间:2011-06-01 22:50:05

标签: php implode


我有一个字符串数组,这些字符串中有空格。例如:

$arr = array('bob', 'john smith', 'grease monkey', 'etc');

为什么当我尝试$str = implode('|', $arr);时,它会在它找到的第一个空间停止? 我留下了一个像:

这样的字符串
$str = "bob|john";


如果我尝试:

$arr = array('bob', 'john', 'grease monkey', 'etc');

并且内爆,我得到:

$str = "bob|john|grease";

编辑:我实际上是想将其设置为隐藏字段的值:

<input id="hidLblFields" name="hidLblFields" type="text" value=<?php echo implode('|', $myFields);?> />

4 个答案:

答案 0 :(得分:3)

  

编辑:我实际上是在尝试将其设置为隐藏字段的值:

<input id="hidLblFields" name="hidLblFields" type="text" value=<?php echo implode('|', $myFields);?> />

您需要引用value属性:

<input .. type="text" value="<?php echo implode('|', $myFields);?>" />

如果不这样做,呈现的HTML看起来像:

<input type="text" value=bob|john|grease monkey />

浏览器将按此处理:

<input type="text" value="bob|john|grease" monkey />

答案 1 :(得分:2)

你的代码中的其他地方必定有错误,implode()不会在空格上中断。

$arr = array('bob', 'john', 'grease monkey', 'etc');
$str = implode('|', $arr);
var_dump($str);
// gives
string(26) "bob|john|grease monkey|etc"

至于你的编辑,你需要引用html中的属性:

<input id="hidLblFields" name="hidLblFields" type="text" value="<?php echo implode('|', $myFields);?>" />

答案 2 :(得分:1)

这根本不可能。您还有一些其他功能正在执行其他操作

答案 3 :(得分:0)

为我工作。尽量不要重新分配变量:

<?php 
$str = array('bob', 'john smith', 'grease monkey', 'etc');
$new_str = implode('|', $str);

echo $new_str;
?>