如何使用PHP在多行字符串变量的每一行中添加一个字符串,比如存储在变量'a'
中的$x
?
答案 0 :(得分:11)
也可以使用:
echo preg_replace('/^/m', $prefix, $string);
/
为delimiters。 ^
与beginning of a string匹配。 m
使其成为multiline。
答案 1 :(得分:5)
有很多方法可以实现这一目标。
一个是:
$multi_line_var = $x.str_replace("\n", "\n".$x, $multi_line_var);
另一个是:
$multi_line_var = explode("\n", $multi_line_var);
foreach($multi_line_var AS &$single_line_var) {
$single_line_var = $x.$single_line_var;
}
$multi_line_var = implode("\n", $multi_line_var);
或者作为一个欺骗性的简单在线人:
$multi_line_var = $x.implode("\n".$x, explode("\n", $multi_line_var));
第二个与第一个相比非常浪费。它为字符串数组分配内存。它遍历每个数组项并修改它。然后把碎片粘在一起。
但如果一个连接不是你对这些文本行所做的唯一改动,那么它会很有用。
答案 2 :(得分:2)
由于您的每行要求,我首先使用explode
将字符串拆分为数组,然后遍历数组并将文本添加到每行的开头,然后使用implode
将数组转回字符串。只要行数不是很大,这可能是一个合适的解决方案。
代码示例:
$arr = explode("\n", $x);
foreach ($arr as $key => $value) {
$arr[$key] = 'a' . $arr[$key];
}
$x = implode("\n", $arr);