Как обрезать каждую строку в heredoc (длинная строка) в PHP

Я надеюсь создавать функцию 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.

Да, я знаю об обрезке () функцию, но я просто не уверен, как использовать ее на длинные строки, такие как heredoc.

10
задан Peter Mortensen 4 July 2019 в 02:12
поделиться

3 ответа

function trimHereDoc($t)
{
    return implode("\n", array_map('trim', explode("\n", $t)));
}
27
ответ дан 3 December 2019 в 13:29
поделиться
function trimHereDoc($txt)
{
    return preg_replace('/^\s+|\s+$/m', '', $txt);
}

^ \ s + соответствует пробелу в начале строки, а \ s + $ соответствует пробелу в конце строки. Флаг m указывает, что нужно выполнить замену в несколько строк, поэтому ^ и $ будут соответствовать в любой строке многострочной строки.

10
ответ дан 3 December 2019 в 13:29
поделиться

Простое решение

<?php
$txtArray = explode("\n", $txt);
$txtArray = array_map('trim', $txtArray);
$txt = implode("\n", $txtArray);
6
ответ дан 3 December 2019 в 13:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: