-1

以下のスクリプトは、文字列に「最も一致する」文字列が見つかったときに終了するはずですが、最終的には見つかったとわかっていても、スクリプトは実行を続けます。エラーの修正を手伝ってください。

$end = "1";
while ($end != 2) {
foreach($anchors as $a) { 
    $i = $i + 1;
    $text = $a->nodeValue;
    $href = $a->getAttribute('href');


        //if ($i<80) {
    //if (strpos($item, ".$array.") == false) {


    //}
      if (strpos($text, "best match") == true) {
$end = "2";
}
   if (strpos($text, "by owner") === false) {
       if (strpos($text, "map") === false) {
   if ($i > 17) {

     echo "<a href =' ".$href." '>".$text."</a><br/>";

}
   }

   }

    }
        //$str = file_get_contents($href);
//$result = (substr_count(strip_tags($str),"ipod"));
//echo ($result);



}
4

2 に答える 2

0

あなたのでは、 truestrposと比較していますが、これは間違っています。 また、thas ifステートメントでは、foreach と while ループを中断する必要があります。

これは正しいコードです:

<?php

while ($end != 2) {

  foreach($anchors as $a) {
    $text = $a->nodeValue;
    $href = $a->getAttribute('href');

    if (strpos($text, "best match") !== false) {
      $end = "2"; 
      break 2;
    }

    if (strpos($text, "by owner") === false) {
      if (strpos($text, "map") === false) {
        if ($i > 17) {
          echo "<a href =' ".$href." '>".$text."</a><br/>";
        }
      }
    }
  }
}
于 2013-04-20T04:02:25.990 に答える