Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > simpleXml_load_file


Автор: LIES 17.6.2010, 08:33
Как прервать выполнение simplexml_load_file по истечению определенного времени(например, 10секунд)???
Заранее спасибо за ответ!

Автор: skyboy 17.6.2010, 10:53
у тебя долгое формирование из-за парсинга XML(слишком большого и сложного) или ты вытягиваешь файл с другого сервера и у тебя слишком долгая передача данных?

Автор: LIES 17.6.2010, 11:33
Вытягиваю файл с другого сервера.

Автор: skyboy 17.6.2010, 12:04
повторяю вопрос: слишком долгое подключение/передача и надо оборвать соединение в случае слишком долгой передачи или слишком сложный XML и надо оборвать обработку и получить "неполную" структуру?

Автор: LIES 17.6.2010, 13:22
слишком долгое подключение/передача и надо оборвать соединение в случае слишком долгой передачи

Автор: skyboy 17.6.2010, 14:45
т.е. ты используешь код типа 
Код

simplexml_load_file('http://site.com/file.xml');

и хочешь, чтоб у тебя был таймаут передачи данных, верно?
если ты обращаешься с удаленным файлом, как с локальным(передаешь в функцию URL вместо пути к локальному файлу, например), то у тебя РНР задействует такую вещь, как http://ua.php.net/manual/en/wrappers.php, чтоб эмулировать для не-локальных файлов те же свойства/функции, что и для локальных(строго говоря, для локальных файлов тоже задействуется свой http://ua.php.net/manual/en/wrappers.file.php). соответственно, таймаут передачи - это параметр именно wrapper'a. в твоем случае - вероятно, http://ua.php.net/manual/en/context.http.php - http://ua.php.net/manual/en/context.http.php#context.http.timeout

Автор: LIES 18.6.2010, 07:53
skyboy, спасибо. Но проверку на задержку сделал через fsockopen, хотя твоя информация небыла лишней.))))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)