處理程式碼產生、日誌格式化、縮排輸出時,常需為多行字串的每一行加上固定前綴(如空白、Tab、> )。
<?php
/**
* 為字串每一行加上前綴字串
*
* @param string $string 原始字串
* @param string $prefix 前綴字串(如 " ", "\t", "> ")
* @return string 處理後字串
*/
function prefixLines($string, $prefix) {
// 依平台換行符分割(PHP_EOL 自動對應 \n, \r\n, \r)
$lines = explode(PHP_EOL, $string);
// 逐行加前綴
foreach ($lines as &$line) {
$line = $prefix . $line;
}
// 重組
return implode(PHP_EOL, $lines);
}
// 使用範例
$code = "function foo()\n{\n echo 'bar';\n}";
echo prefixLines($code, " "); // 每行縮排 4 空白
?>
function foo()
{
echo 'bar';
}
function prefixLinesEx($string, $prefix, $eol = PHP_EOL) {
$lines = explode($eol, $string);
array_walk($lines, function(&$l) use ($prefix) { $l = $prefix . $l; });
return implode($eol, $lines);
}
此函數簡潔高效,適用於程式碼產生器、模板引擎、日誌格式化等需逐行加前綴的場景。