php взломать разрывы на пространствах - PullRequest
1 голос
/ 02 июня 2011

У меня есть массив строк, и в этих строках есть пробелы.Например:

$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 ]

3 голосов
/ 02 июня 2011

Редактировать: На самом деле я пытаюсь установить значение скрытого поля:

<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 />
2 голосов
/ 02 июня 2011

У вас должна быть ошибка где-то еще в вашем коде, 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);?>" />
1 голос
/ 02 июня 2011

Это просто невозможно. У вас есть другие функции, выполняющие некоторые другие операции

0 голосов
/ 02 июня 2011

работал для меня.Попробуйте не переназначать ваши переменные:

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

echo $new_str;
?>
...