Как определить, имеет ли строка в нем разрыв строки?

Это не работает:

$string = 'Hello world'; if(strpos($string, '\n')) { echo 'New line break found'; } else { echo 'not found'; } 

Очевидно, потому что в строке нет символа «\ n». Но как еще я могу проверить, есть ли разрыв строки, который является результатом нажатия пользователем ввода в поле формы?

Solutions Collecting From Web of "Как определить, имеет ли строка в нем разрыв строки?"

Ваш существующий тест не работает, потому что вы не используете двойные кавычки вокруг символа прерывания строки ( '\n' ). Измените его на:

if(strstr($string, "\n")) {

Или, если вам нужна совместимость между различными операционными системами:

if(strstr($string, PHP_EOL)) {

Также обратите внимание, что strpos вернет 0, и ваш оператор будет оценивать FALSE, если первый символ равен \n , поэтому strstr – лучший выбор. В качестве альтернативы вы можете изменить использование strpos для:

 if(strpos($string, "\n") !== FALSE) { echo 'New line break found'; } else { echo 'not found'; } 

line break – \r\n на окнах, а на машинах UNIX – \n . поэтому он ищет PHP_EOL вместо «\ n» для совместимости между ОС или ищет «\ r \ n» и «\ n».