使用爆炸我将文本分解成碎片,然后我们使用foreach来查找文本中的一些内容。
$pieces = explode(' ', $text);
foreach ($pieces as $piece) {
Some Modification of the piece
}
我的问题是如何将这些碎片重新组合在一起?所以我可以自言自语。 有人喜欢这样:
piece 1 + piece 2 + etc
答案 0 :(得分:3)
您可以使用implode()
功能。
http://php.net/manual/en/function.implode.php
string implode ( string $glue , array $pieces )
string implode ( array $pieces )
编辑:可能是有史以来最具误导性的问题。
如果你试图对你正在构建的图像进行自动换行,也许你可以将它们全部放在单独的div中,按照float:left style的顺序排列。
答案 1 :(得分:2)
首先,如果要修改内联循环中的每个$piece
,则必须将项目循环为引用:
foreach ($pieces as &$piece)
循环结束后,您可以使用join()
:
$string = join(' ', $pieces);
(join()
的第一个参数是将各个部分粘合在一起的分隔符。使用最适合您应用的任何内容。)
答案 2 :(得分:2)
这是我的看法
$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ornare tincidunt euismod. Pellentesque sodales elementum tortor posuere mollis. Curabitur in sem eu urna commodo vulputate.\nVivamus libero velit, auctor accumsan commodo vel, blandit nec turpis. Sed nec dui sit amet velit interdum tincidunt.";
// Break apart at new lines.
$pieces = explode("\n", $text);
// Use reference to be able to modify each piece.
foreach ($pieces as &$piece)
{
$piece = wordwrap($piece, 80);
}
// Join the pieces together back into one line.
$wrapped_lines = join(' ', $pieces);
// Convert new lines \n to <br>.
$wrapped_lines = nl2br($wrapped_lines);
echo $wrapped_lines;
/* Output:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ornare tincidunt<br />
euismod. Pellentesque sodales elementum tortor posuere mollis. Curabitur in sem<br />
eu urna commodo vulputate. Vivamus libero velit, auctor accumsan commodo vel, blandit nec turpis. Sed nec<br />
*/
答案 3 :(得分:1)
到目前为止,所有答案都比现在困难得多。为什么不在修改时把它重新组合在一起?我认为这就是你要找的东西。
$pieces = explode(' ', $text);
// text has already been passed to pieces so unset it
unset($text);
foreach ($pieces as $piece) {
Some Modification of the piece
// rebuild the text here
$text .= {MODIFIED PIECE};
}
// print the new modified version
echo $text;
答案 4 :(得分:0)
$pieces = implode(' ', $pieces);
答案 5 :(得分:0)
问题非常令人困惑,但是会有这样的工作:
$new = implode(' ', $pieces);
echo wordwrap($new, 120); // wordwrap 120 chars