如何检测字符串中是否有新换行符?

php
2022-08-30 13:02:24

这不起作用:

$string = 'Hello
    world';

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

显然是因为字符串中没有“\n”字符。但是,我还能如何检查是否存在用户在表单字段中按 Enter 的结果的换行符呢?


答案 1

现有测试不起作用,因为换行符 () 两边未使用双引号。将其更改为:'\n'

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

或者,如果您希望跨操作系统兼容:

if(strstr($string, PHP_EOL)) {

另请注意,如果第一个字符是 ,则将返回 0,并且您的语句的计算结果将为 FALSE,因此是更好的选择。或者,您可以将用法更改为:strpos\nstrstrstrpos

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

答案 2

换行符在窗口上,在 UNIX 机器上是 。因此,它搜索而不是“\n”以实现跨操作系统兼容性,或者同时搜索“\r\n”和“\n”。\r\n\nPHP_EOL


推荐