1


文字列の配列があり、これらの文字列にはスペースがあります。例えば:

$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

4 に答える 4

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 />
于 2011-06-01T23:00:15.240 に答える
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);?>" />
于 2011-06-01T22:54:01.983 に答える
1

これは単に不可能です。他の操作を行う他の機能があります

于 2011-06-01T22:52:04.383 に答える
0

私のために働いた。変数を再割り当てしないでください。

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

echo $new_str;
?>
于 2011-06-01T22:54:47.627 に答える