0

我有一个文件(fullsoccer.txt),其中包含 500 个链接(XML 文件的在线链接)我调用这些链接,然后将每个链接传递给打开链接的函数,然后读取内容,然后将内容传递给解析函数( xml_parser) 来解析内容并将其保存在我的数据库中。我的问题是该函数仅解析和保存最后一个文件。我尝试调试代码,发现所有链接都是正确的并且正在打开,但只有最后一个正在被解析我需要你的帮助,这是我的代码有问题吗?或者在完成第一个阅读请求之前,我的循环中的 fopen 和 fread 是否接收到第二个打开请求?这是我的代码:

function doParse($parser_object) {
  $links=file("./fullsoccer.TXT");
  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";
      }
  }
}

请帮助我,因为我已经忍受了很长时间了,拜托

4

2 回答 2

0

你可以试试file_get_contents();吗?
它更容易..

  if (($data = file_get_contents($link)) !== FALSE) {
          xml_parse($parser_object, $data/*, feof($fp)*/);
  } else {
      echo 'Cannot Open Link '.$link."\n";
  }

还启用error_reporting(E_ALL);ini_set("display_errors",1);获得更多光..

于 2013-05-09T06:48:58.360 回答
-1

如果你需要阅读文本文件,你可以像下面这样使用它

<?php
$file = fopen("fullsoccer.txt", "r");
$links = array();

while (!feof($file)) {
   $links[] = fgets($file);
}

fclose($links);

var_dump($links);
?>
于 2013-05-09T06:39:27.463 回答