2012-04-01 2 views
0

아무도 왜 이것이 작동하지 않는지 말할 수 있습니까? 항상 false을 반환합니다.문자열의 새 행 확인

$str = "huuhhu\r\n\r\nmoo.com\r\nwww"; 

if (preg_match('/(\\n|\\r\\n|\\r)/', $str) === true) { 
    echo "True"; 
} else { 
    echo "False"; 
} 
+0

그냥 참고 : 당신 때문에 당신이 정규식에 대한 이중 탈출이 필요하지 않습니다이 작업을 수행 할 필요가 작은 따옴표 사용. '/ (\ n | \ r \ n | \ r)/'도 효과가 있습니다. –

답변

4

preg_matchtrue을 반환하지 않습니다. 일치하는 수를 반환합니다. 당신은 아마이 당신의 표현을 단순화 할 수, 또한

$str = "huuhhu\r\n\r\nmoo.com\r\nwww"; 

if (preg_match('/(\\n|\\r\\n|\\r)/', $str)) { 
    echo "True"; 
} else { 
    echo "False"; 
} 

을 :

'/\n|\r\n?/' 
+0

죄송합니다 PHP n00b 여기에,하지만 확실하게 (0) php 및 false (1), if (2), if (3) 등 거의 모든 다른 언어로 사실입니까? – Beeblbrox

+1

예. 그러나'==='를 사용하는 것은'type'도 고려하며'integer'는'boolean'과 같은 타입이 아닙니다. 당신이 원한다면'== true'를 할 수 있지만, 모두 함께 무시하는 것과 같습니다. – MichaelRushton

+0

@MichaelRushton ... 많이 고마워요! – Brett

2

는 preg_match()는 시간 패턴과 일치하는 숫자 FALSE 오류가 발생한 경우를 반환한다. 결코 true을 반환하지 않습니다.