2013-05-09 168 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

相關問題