我正在寻找一个可以修剪长字符串中每一行的php函数。
例如:
<?php
$txt = <<< HD
This is text.
This is text.
This is text.
HD;
echo trimHereDoc($txt);
输出:
This is text.
This is text.
This is text.
是的,我知道trim()函数。只是不确定如何在长字符串上使用它,例如heredoc。
答案 0 :(得分:26)
function trimHereDoc($t)
{
return implode("\n", array_map('trim', explode("\n", $t)));
}
答案 1 :(得分:9)
function trimHereDoc($txt)
{
return preg_replace('/^\s+|\s+$/m', '', $txt);
}
^\s+
匹配行开头的空格,\s+$
匹配行尾的空格。 m
标记表示要进行多行替换,因此^
和$
将匹配多行字符串的任意一行。
答案 2 :(得分:6)
简单的解决方案
<?php
$txtArray = explode("\n", $txt);
$txtArray = array_map('trim', $txtArray);
$txt = implode("\n", $txtArray);
答案 3 :(得分:4)
function trimHereDoc($txt)
{
return preg_replace('/^\h+|\h+$/m', '', $txt);
}
虽然\s+
删除了空行,但每个空行保留\h+