才高八斗的柳树 · 用于jolokia ...· 2 周前 · |
淡定的盒饭 · 我想在Excel文件中添加超链接使用Open ...· 1 周前 · |
果断的围巾 · OpenXml ...· 1 周前 · |
耍酷的芹菜 · OpenXml 之 Excel ...· 1 周前 · |
跑龙套的小狗 · C++ XML 序列化器-CSDN博客· 1 周前 · |
聪明的牛肉面 · 小说《痴汉失忆后被疯批强制爱了》走笔阑珊【完结】· 7 月前 · |
谈吐大方的爆米花 · 哥布林洞窟未增删/炎炎消防队大队长×森罗菊花 ...· 1 年前 · |
稳重的豆腐 · 丁神经与肿瘤君-第29话 癌症与螃蟹· 1 年前 · |
刚毅的围巾 · 10年后,沃尔沃彻底停产燃油车_36氪· 1 年前 · |
独立的红豆 · 17697辆!绿色城配品质典范企业鑫源汽车2 ...· 1 年前 · |
我计划使用PHP来满足一个简单的需求。我需要从一个URL下载XML内容,为此我需要向该URL发送HTTP GET请求。
我如何在PHP中做到这点?
http_get
应该可以做到这一点。与
file_get_contents
相比,
http_get
的优势包括能够查看HTTP头、访问请求详细信息和控制连接超时。
$response = http_get("http://www.example.com/file.xml");
除非您需要的不仅仅是文件的内容,否则可以使用
file_get_contents
。
$xml = file_get_contents("http://www.example.com/file.xml");
对于更复杂的情况,我会使用 cURL 。
对于更高级的GET/POST请求,可以安装CURL库( http://us3.php.net/curl ):
$ch = curl_init("REMOTE XML FILE URL GOES HERE"); // such as http://example.com/example.xml
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
根据你的php设置是否允许fopen on url,你也可以简单地在字符串中使用get参数来fopen这个url(比如 http://example.com?variable=value )。
编辑:重读这个问题我不确定你是否想要传递变量-如果你不是,你可以简单地发送包含 http://example.com/filename.xml 的fopen请求-请随意忽略variable=value部分
我喜欢使用fsockopen来做这件事。
请记住,如果您正在使用代理,则需要在php代码中使用一些技巧:
(PROXY WITHOUT AUTENTICATION EXAMPLE)
$aContext = array(
'http' => array(
'proxy' => 'proxy:8080',
'request_fulluri' => true,
$cxContext = stream_context_create($aContext);
$sFile = file_get_contents("http://www.google.com", False, $cxContext);
echo $sFile;
?>
另一方面,在PHP中使用服务器的REST API非常流行。您可以假设所有URL都是REST API的一部分,并使用许多设计良好的PHP包。
实际上,REST API是从站点使用服务的一种方式。
因此,有许多PHP包被开发来简化REST API调用。例如,下面是一个非常好的例子:
https://github.com/romanpitak/PHP-REST-Client
使用这些包可以帮助您轻松获取资源。
因此,获取xml文件(您提到的)非常简单:
$client = new Client('http://example.com');
$request = $client->newRequest('/filename.xml');
跑龙套的小狗 · C++ XML 序列化器-CSDN博客 1 周前 |
聪明的牛肉面 · 小说《痴汉失忆后被疯批强制爱了》走笔阑珊【完结】 7 月前 |
稳重的豆腐 · 丁神经与肿瘤君-第29话 癌症与螃蟹 1 年前 |
刚毅的围巾 · 10年后,沃尔沃彻底停产燃油车_36氪 1 年前 |