Как использовать 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);
?>