这不起作用:
$string = 'Hello
world';
if(strpos($string, '\n')) {
echo 'New line break found';
}
else {
echo 'not found';
}
Run Code Online (Sandbox Code Playgroud)
显然因为字符串中没有"\n"字符.但是我怎么能检查是否存在换行符,这是用户在表单字段中按Enter键的结果?
rdl*_*rey 72
您现有的测试不起作用,因为您没有在换行符('\n')周围使用双引号.将其更改为:
if(strstr($string, "\n")) {
或者,如果您想要跨操作系统兼容性:
if(strstr($string, PHP_EOL)) {
另请注意,strpos如果第一个字符是\n,则返回0并且您的语句将评估为FALSE ,因此strstr是更好的选择.或者,您可以将strpos用法更改为:
if(strpos($string, "\n") !== FALSE) {
echo 'New line break found';
}
else {
echo 'not found';
}
Run Code Online (Sandbox Code Playgroud)
检测文本中可能来自不同操作系统的换行符的最可靠方法是:
preg_match('/\R/', $string)
Run Code Online (Sandbox Code Playgroud)
\R来自PCRE,它与以下内容相同:(?>\r\n|\n|\r|\f|\x0b|\x85|\x{2028}|\x{2029})
检查 PHP_EOL 的建议答案
if(strstr($string, PHP_EOL)) {
Run Code Online (Sandbox Code Playgroud)
例如,如果您在 Windows 系统上并检查在 Unix 系统中创建的文件,则该命令将不起作用。
| 归档时间: |
|
| 查看次数: |
60740 次 |
| 最近记录: |