在PHP中的Foreach循环和字符串

时间:2012-05-05 15:48:50

标签: php regex string 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"))

两者都不起作用。

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

您可能正在寻找一种称为正则表达式的东西:

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

这是他们自己的语言来描述字符串。您可以在上面(doucmented in the PHP manual)和互联网上找到它们preg_match。也许读一本关于它们的书很好,这也是它自己的语言。

请注意这个表达式:

$data || $noscript->innertext

将在PHP中为FALSETRUE,但不是您的想法(字符串)。在PHP中没有这样的快捷方式,因此您需要编写更多代码。

答案 2 :(得分: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>";
}