用字符串前置变量的每一行

时间:2012-06-28 21:05:21

标签: php

如何使用PHP在多行字符串变量的每一行中添加一个字符串,比如存储在变量'a'中的$x

3 个答案:

答案 0 :(得分:11)

也可以使用:

echo preg_replace('/^/m', $prefix, $string);

/delimiters^beginning of a string匹配。 m使其成为multiline

demo

答案 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);

示例:http://codepad.org/0WpJ41LE