PHP: XML-файл в строку, которая быстрее file_get_contents или simplexml_load_file с asXML () - PullRequest
6 голосов
/ 09 сентября 2010

Я пишу прокси-сервис для кэширования запросов, которые мое мобильное приложение отправляет веб-сервису. (как человек посередине)

Задача созданного мной прокси-сайта состоит в том, чтобы передать запрос, полученный из приложения, на сторонний веб-сервис и сохранить ответ от стороннего веб-сервиса в виде файла XML, а все последующие вызовы для того же запроса считываются из XML. файл и предоставить ответ (в основном, кеширование ответа с использованием Php, curl и simplexml_load_file).

Теперь мой вопрос - Каков рекомендуемый способ чтения XML-файла и возврата строки.

вариант 1: $ contents = file_get_contents ($ filename); echo $ content;

вариант 2: $ XML = simplexml_load_file ($ имя_файла) echo $ xml-> asXML ();

1 Ответ

4 голосов
/ 09 сентября 2010
readfile($filename);

file_get_contents / echo сначала считывает все содержимое в память процесса php, а затем отправляет его в выходной поток.Нет необходимости иметь весь контент в памяти, если все, что вы хотите сделать, для его пересылки.
simplexml_load_file () не только считывает весь контент в память, но и анализирует документ, который занимает дополнительное время.Опять не нужно, если вы не хотите получать конкретные данные из документа или тестировать / изменять их.

readfile () отправляет содержимое напрямую в выходной поток и может делать это «любым удобным для него способом».Т.е., если поддерживается, он может использовать отображенные в память файлы, если нет, то может, по крайней мере, читать содержимое меньшими порциями.

...