在PHP中使用simplexml_load_文件进行并行下载

在PHP中使用simplexml_load_文件进行并行下载,php,download,simplexml,Php,Download,Simplexml,我想使用PHP通过simplexml\u load\u file从2个URL同时下载数据,但脚本必须等到收集到所有数据后才能继续处理其余代码 $url1 = "http://www.example.com/api1"; $request1 = simplexml_load_file($url1); $url2 = 'http://www.example.com/api2'; $request2 = simplexml_load_file("compress.zlib://$url2", NUL

我想使用PHP通过
simplexml\u load\u file
从2个URL同时下载数据,但脚本必须等到收集到所有数据后才能继续处理其余代码

$url1 = "http://www.example.com/api1";
$request1 = simplexml_load_file($url1);

$url2 = 'http://www.example.com/api2';
$request2 = simplexml_load_file("compress.zlib://$url2", NULL, TRUE);

echo 'finished';
我希望所有的数据在打印完成之前都被完全下载


您将如何编辑上面的脚本来实现这一点?

在打开“文件”时直接获取URL,使用的功能包括
simplexml\u load\u file
旨在为不需要非阻塞/异步I/O之类的简单情况提供捷径

您编写的脚本将在打印单词“finished”之前等待所有内容的下载,但它也将等待
http://www.example.com/api1
在开始请求
http://www.example.com/api2

您需要将问题分解为:

  • 并行下载两个URL的内容(或者更准确地说是“异步下载”)。您的结果将是两个字符串
  • 使用
    simplexml\u load\u string
    解析这些字符串中的每一个

PHP最流行的HTTP库是,但您应该能够找到许多替代方法,并提供使用编写自己的HTTP库的指南,如果您搜索“PHP异步HTTP”或“PHP并行HTTP请求”之类的术语。

Id使用curl\u multi,然后使用simplexml\u load\u string,simplexml\u load\u文件是不同步的