Как можно обрезать несколько разрывов строк?
например,
$text ="similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore "
Я попытался с этим ответом, но это не работает в случае выше, я думаю,
$text = preg_replace("/\n+/","\n",trim($text));
Ответ, который я хочу получить,
$text ="similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore "
Принимается только один разрыв строки .
Также я хочу обрезать несколько пробелов одновременно, если я сделаю это ниже, я не могу сохранить разрывы строк!
$text = preg_replace('/\s\s+/', ' ', trim($text));
Как я могу сделать это в регулярном выражении?
Разрыв строки в этом случае равен \r\n
, а не \n
:
$text = preg_replace("/(\r\n){3,}/","\r\n\r\n",trim($text));
Это говорит «каждый раз, когда найдено 3 или более разрывов строк, замените их на 2 разрыва строки».
Пространства:
$text = preg_replace("/ +/", " ", $text); //If you want to get rid of the extra space at the start of the line: $text = preg_replace("/^ +/", "", $text);
Не уверен, что это лучший способ, но я бы использовал взрыв. Например:
function remove_extra_lines($text) { $text1 = explode("\n", $text); //$text1 will be an array $textfinal = ""; for ($i=0, count($text1), $i++) { if ($text1[$i]!="") { if ($textfinal == "") { $textfinal .= "\n"; //adds 1 new line between each original line } $textfinal .= trim($text1[$i]); } } return $textfinal; }
Надеюсь, это поможет. Удачи!