我有一个指向 xml 文件(在线文件)的 500 个链接我想将这些文件传递给一个函数,该函数读取这些文件的内容,解析它们,然后将它们存储在我的数据库(mysql)中。我使用这个函数来获取链接:
function get_links()
{
$user_file = @fopen("./fullsoccer.TXT", "r");
if ($user_file)
{
while (!feof($user_file))
{
$lines[] = fgets($user_file, 4096);
}
fclose($user_file);
}
return $lines;
}
然后我使用这个函数来读取每个链接内容并解析它:
function doParse($parser_object) {
$links=get_links();
$i=0;
while(!empty($links[$i]))
{
if (!($fp = fopen($links[$i], "r")));
{
//loop through data
while ($data = fread($fp, 4096)) {
//parse the fragment
xml_parse($parser_object, $data, feof($fp));
}
}
$i++;
}
}
链接成功返回(我在“doParse”函数中打印它们)但问题是:“doParse”函数只解析最后一个链接的文件。我想知道为什么该函数只解析最后一个链接的文件并留下整个之前的 499 个文件?是fopen问题吗??它能够读取超过 1 个文件吗?