我有一个文件(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";
}
}
}
帮助我解决这个问题,因为我已经和它一起生活了很长时间,请
答案 0 :(得分:0)
如果您需要阅读文本文件,可以使用它,如下所示
<?php
$file = fopen("fullsoccer.txt", "r");
$links = array();
while (!feof($file)) {
$links[] = fgets($file);
}
fclose($links);
var_dump($links);
?>
答案 1 :(得分: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);
以获得更多亮点..