Intereting Posts
Twitter OAuth – Недействительный токен доступа илистек принудительный доступ к свойствам объекта __PHP_Incomplete_Class Расписание Laravel 5 не работает Как мне создать кнопку выхода из системы в моей строке меню, которая отображается помощником вида? Пропустить Checkout в Magento для загружаемого продукта URL перезаписи, содержащий знак вопроса как сопоставить две строки mysql одной таблицы в php Попробуйте выполнить различные вызовы соединения odbc Отменить переменную сеанса при событии нажатия кнопки Обнаруживать, если какой-либо IE (MSIE) Google с oauth 2 Как я могу определить, была ли строка вставлена ​​в базу данных за несколько секунд назад «INSERT … ON DUPLICATE KEY UPDATE id = id» все еще вставляет в дубликат Как войти в систему с использованием двух разных моделей или класса идентификации коммутатора в yii2? Многолинейный режим Regex не работает как ожидалось для дополнительной группы

Обрезать несколько разрывов строк и несколько пробелов от строки?

Как можно обрезать несколько разрывов строк?

например,

$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); 

Демо: http://codepad.org/PmDE6cDm

Не уверен, что это лучший способ, но я бы использовал взрыв. Например:

 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; } 

Надеюсь, это поможет. Удачи!