2012-05-05 3 views
1

PHP 코드 :foreach 루프와 문자열

foreach ($html->find('table') as $noscript) {echo $data; 
     echo $data; 
     echo $noscript->innertext . "<br>"; 
    } 

지금 내가 가진이의 모든 문자열을 비교할 필요가 'GOOGLE "또는"구글 "같은 것을 할 수있다"구글은 "여기 경우 아무튼 상관 없어.

하지만 어떻게 내가 $noscript->innertext을 확인하고 내가 이것을 구현하는 방법을 생각 드릴 수 없습니다

"구글"에 대한 $data; 에코 않습니다. 친절하게 나에게 몇 가지 코드 예제를 제공합니다. 작동하지 않는

if (strstr(strtolower($data)||strtolower($noscript->innertext), "google")) 

둘 :

코드는 내가

foreach ($html->find('table') as $noscript) { 
     //if (strstr(strtolower($data)||strtolower($noscript->innertext), "google")) 
     if (preg_match('/google/i', $data || $noscript->innertext)) { 
      echo "This is Google"; 
      $real = 1; 
     } 


     echo $data; 
     echo $noscript->innertext . "<br>"; 
    } 

두 번째 시도를했습니다.

+0

"정규 표현식"을 찾고있을 수도 있습니다. – hakre

+0

지금 제 질문을보고 편집하십시오. –

+1

'$ data || $ noscript-> innertext'는 PHP에서 작동하지 않습니다 (어쩌면 자바 스크립트에 익숙합니까?). – hakre

답변

4
if(stristr($data,'google') || stristr($noscript->innertext,'google')) 
{ 
    echo "This is Google"; 
} 
+0

와우, 완벽한 감사합니다. –

+0

에는 적합하지만 goooogle에는 적합하지 않습니다. – hakre

+0

분명히 질문에 없었습니다 –

0
foreach ($html->find('table') as $noscript) { 
     if(preg_match("/^google/i", $noscript->innertext) || preg_match("/^google/i", $data)) { 
      echo $data; 
     } 
     echo $noscript->innertext . "<br>"; 
} 
+0

$ 데이터도 비교해야합니다. –

+0

감사합니다. 이것도 작동합니다. 어디에서 preg을 배웠습니까? –

2

당신은 정규 표현식이라는 뭔가를 찾고 될 수 있습니다 문자열을 decribe하기 위해 자신의 언어입니다

§hasGoogle = preg_match('~goo+gle~i', $text); 

합니다. 위 함수 (preg_match)와 인터넷에서 doucmented in the PHP manual을 찾습니다. 아마도 자신에 관한 책을 읽는 것이 좋을뿐만 아니라 자신의 언어이기도합니다.

$data || $noscript->innertext 

는 PHP에서 FALSE 또는 TRUE 될 것 중 하나이지만 (문자열)을 생각하지 무엇을 :이 표현하는 것이

참고. PHP에는 이와 같은 단축키가 없으므로 더 많은 코드를 작성해야합니다.

+0

그래서 (preg_match ('~~ goo + gle ~ i', $ data || $ noscript-> innertext)) {}를 시도하고 싶습니까? –

+0

확실히, 대신'$ text'를 사용하십시오 (하나의 변수). 문자열로 더 일찍 채울 수 있습니다 (그러나 포함 된 내용이 포함되어 있는지 디버깅하십시오). – hakre

+0

오류 : 알 수없는 수정 자 'g' –