2013-05-09 167 views
0

我有一个文件(fullsoccer.txt),它有500个链接(XML文件的在线链接)我称这些链接,然后我将每个链接到一个函数打开链接,然后阅读内容,然后将内容传递给解析函数(xml_parser)来解析内容并将其保存在我的数据库中。我的问题是,该功能是解析并保存最后一个文件。我尝试调试代码,发现所有链接都是正确的,并且正在打开,但最后一个正在解析我需要你的帮助,这是我的代码的问题?或者在完成第一次阅读请求之前,在接收第二次打开请求的循环中打开并颤抖? 这是我的代码:如何使用fopen,feof和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"; 
     } 
    } 
} 

帮助我的,因为我一直生活与它真的很长一段时间,请

回答

0

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

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

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

fclose($links); 

var_dump($links); 
?> 
+0

不是在我读它完美的文本文件中没有问题。我想阅读文本文件中每个链接的内容。 – 2013-05-09 06:43:10

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); ..

+0

我使用这段代码,但问题仍然是一样的。它只是读我的链接中的最后一个链接的内容,我越来越疯狂 – 2013-05-09 07:08:02

+0

你确定你从你的.txt文件中获得所有链接?你用'print_r();'在循环之前验证了它?代码太简单了,不能隐藏任何东西.. – 2013-05-09 07:12:34

+0

是的,这是我第一次认为它确信它,我确信所有链接服务 – 2013-05-09 07:14:03

相关问题