Всем Здравствуйте. Меня попросили сделать парсер для сайта, но проблема не парсере. В общем суть в том. В файле есть доменные имена , я их извлекаю, и по одной отправляю на сервер(На другой сайт через API ) get запросом ,в ответ я получаю данные. Проблема в том что когда я отправляю больше двух доменов начинаются проблемы и PHP Выдает ошибки,Якобы сервер долго отвечал , Как можно с этим разобраться? Код (Text): <? $type = ($_FILES[somename][type]); /* Получаем тип загружаемого файла */ if ($type == "text/plain"){ /* файл подходит */ $file_put = $_FILES[somename][tmp_name]; /* получаем путь к файлу */ $Parse_file = file_get_contents("$file_put"); /* загружаем файл в переменну */ $list_parse = (explode("\n", $Parse_file)); /* разделяем домены */ for($i = 0; $i < count($list_parse);$i++){ /* цикл обробтки каждого домена */ $list_parse[$i] = str_replace(' ', '', $list_parse[$i]); /* убераем пробелы */ Echo "$list_parse[$i]<br>"; /* выводим домен коотрый обрабатываем (только для разроботки) */ $domen = "http://xml.linkpad.ru/?url=$list_parse[$i]"; /* пишем get запрос и помещаем в переменную */ Echo "$domen"; /* выводим ссылку которая получилось(только для разроботки) */ Echo "<br>"; /* переходим на другую строку */ echo file_get_contents("$domen"); /* отправляеи get запрос и выводим полученные данные .[ВОТ ТУТ И НАЧИНАЮТСЯ ОШИБКИ КОГДА ДОМЕНОВ БОЛЬШЕ ЧЕМ 2] */ Echo "<br>________________<br>"; } } else{ Echo "Не верный файл для парсинга"; /* файл не подходит */ } ?> <form action="" method = "post" enctype = 'multipart/form-data'> <input type = "file" name = "somename" /> <input type = "submit" value = "Загрузить" /> </form> Файл текст доменов zenit.ru 103-astana.ru ak-madi.ru asylmura.ru inicom.ru madlen.ru pizzahut.ru turkacadem.ru volki.ru presscenter.ru tildaryn.ru sitr.ru Как можно обойти эту проблемму? Добавлено спустя 8 минут 52 секунды: Уп, Сори, Такие проблемы только на денвере , на хостинге нормально работает. Добавлено спустя 45 минут 37 секунд: Теперь у меня другая проблема, Код (Text): if ($type == "text/plain"){ /* файл подходит */ $file_put = $_FILES[somename][tmp_name]; /* получаем путь к файлу */ $Parse_file = file_get_contents("$file_put"); /* загружаем файл в переменную */ $list_parse = (explode("\n", $Parse_file)); /* разделяем домены */ for($i = 0; $i < count($list_parse);$i++){ /* цикл обработки каждого домена */ $list_parse[$i] = str_replace(' ', '', $list_parse[$i]); /* убираем пробелы */ Echo "$list_parse[$i]<br>"; /* выводим домен который обрабатываем (только для разработки) */ $domen = "http://xml.linkpad.ru/?url=$list_parse[$i]"; /* пишем get запрос и помещаем в переменную */ Echo "$domen"; /* выводим ссылку которая получилось(только для разработки) */ Echo "<br>"; /* переходим на другую строку */ echo file_get_contents("$domen"); /* отправляет get запрос и выводим полученные данные .[ВОТ ТУТ И НАЧИНАЮТСЯ ОШИБКИ КОГДА ДОМЕНОВ БОЛЬШЕ ЧЕМ 2] */ Echo "<br>________________<br>"; } } Вот в этих строчках. Почему то когда отправляешь запрос: file_get_contents("http://xml.linkpad.ru/?url=http://$list")) C помощью переменной то я получаю ошибку . а в ответе написано что запрашивался php.ru_ и внизу подчеркивание хотя в переменной нету такого знака в переменной строки php.ru а при запросе добавляется черта и запрос не верный когда делать запрос: file_get_contents("http://xml.linkpad.ru/?url=http://php.ru")) то все нормально работает , что делать? кто знает?
Попробуй заменить вот эти две строки: Код (PHP): $Parse_file = file_get_contents("$file_put"); /* загружаем файл в переменную */ $list_parse = (explode("\n", $Parse_file)); /* разделяем домены */ на одну такую: Код (PHP): $list_parse = file($file_put, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
Warning: file() [function.file]: Filename cannot be empty in W:\home\portfol.ps\www\index.php on line 5 Вот что говорит
Код (Text): $Parse_file = file_get_contents("$file_put"); Она вот тут записывалась Добавлено спустя 1 минуту 44 секунды: Оооо Вроде помогло ,Спасибо большое! Добавлено спустя 1 минуту 4 секунды: Код (Text): $list_parse = file($file_put, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); А что эти строки делают ? можите пояснить что бы я знал на будущее?.