Как использовать fopen, feof и fread для манипулирования несколькими файлами?

У меня есть файл (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";
      }
  }
}

помогите мне в этом, потому что я живу с этим очень долго, пожалуйста

2 ответа

Ты можешь попробовать с 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); для немного больше света..

Если вам нужно прочитать текстовый файл, вы можете использовать его, как показано ниже

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

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

fclose($links);

var_dump($links);
?>
Другие вопросы по тегам