0

私は次の機能を持っています:

    function doParse($parser_object) {
    $links=file("./fullsoccer.TXT", "r");
    $i=0;
    while(!empty($links[$i]))
    {
        set_time_limit(0);
        if (!($fp = fopen($links[$i], "r")));
        {
            //loop through data
            while ($data = fread($fp, 4096)) {
                //parse the fragment
                xml_parse($parser_object, $data, feof($fp));
            }
        }
        $i++;
    }
}

このコードは、XML データの 507 リンクのリストを fullsocce.txt から $links に保存します。次に、fread を使用して各ファイル (リンク: オンライン リンク) の内容を読み取り、$data をメイン関数の xml_parse に渡して解析および保存します。 SAX パーサーを使用したデータ。私の問題は、配列 $links の最後のファイルが関数に渡され、データを解析することです.1つのファイルだけで機能する理由を教えてください。緊急事態です

4

2 に答える 2

0

がありませんがfclose、それ以外にデバッグを行う必要があると思います。「xml_parse」関数をコメントアウトして追加してみてくださいecho $links[$i]."<br />\n";

function doParse($parser_object) {
  $links=file("./fullsoccer.TXT", "r");
  $i=0;
  foreach($links as $link)
  {
      set_time_limit(0);
      echo 'reading '.$link."\n";
      $fp = fopen($link, "r");
      if ($fp!==false)
      {
          //loop through data
          while ($data = fread($fp, 4096)) {
              //parse the fragment
              //xml_parse($parser_object, $data, feof($fp));
              echo $data;
          }
          echo "\n";
          fclose($fp);
      } else {
          echo 'Cannot Open Link '.$link."\n";
      }
      $i++;
  }
}
于 2013-05-08T13:52:37.147 に答える