2012-05-05 2 views
1

PHP код:Foreach петли и строки в PHP

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

Теперь мне нужно сравнить все строки в этом с «Google» это может быть что угодно, как «Google» или «Google», здесь дело Безразлично Не важно.

Но как я проверить $noscript->innertext и эхо $data; для «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>"; 
    } 

Вторая попытка:

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

Оба из которых не работают.

+0

Возможно, вы ищете что-то под названием «регулярное выражение». – hakre

+0

Пожалуйста, посмотрите мой вопрос сейчас, отредактированный. –

+1

'$ data || $ noscript-> innertext' не работает в PHP (возможно, вы привыкли к javascript?). – 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

Мне также нужно сравнить $ data, –

+0

Спасибо, это тоже работает. Откуда вы учились? –

2

Вы можете искать что-то называется регулярным выражением:

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

, которые язык самостоятельно, опишите строки. Вы найдете их doucmented in the PHP manual для этой функции выше (preg_match) и в Интернете. Возможно, хорошо читать книгу о них, а также это собственный язык.

Обратите внимание, что это выражение:

$data || $noscript->innertext 

будет либо FALSE или TRUE в PHP, но не то, что вы думаете (строку). В PHP нет такого ярлыка, поэтому вам нужно написать больше кода.

+0

Итак, вы хотите попробовать, если (preg_match ('~~ goo + gle ~ i', $ data || $ noscript-> innertext)) {}? –

+0

Вполне, но вместо этого используйте '$ text' (одна переменная). Вы можете заполнить его ранее своей строкой (но отлаживаете, что она содержит то, что вы в ней указываете). – hakre

+0

Ошибка: Неизвестный модификатор 'g' –

Смежные вопросы