通过PHP cURL获取文件内容

19

我有一个网站,假设它叫做 http://www.domain.com。现在,在这个 domain.com 上,我想显示来自http://www.adserversite.com/ads.php的文件内容。我该如何使用cURL或其他方法实现?我不想使用 iframe

谢谢


可能是与相关部分重复。在提问之前,请先进行研究,以避免询问已经被问过或可以通过谷歌轻松回答的问题。 - Gordon
2个回答

56
你可以像Petr所说的那样使用file_get_contents,但你需要在php.ini中启用allow_url_fopen,也许你的主机不允许更改这个设置。如果你更喜欢使用CURL而不是file_get_contents,请尝试以下代码:
<?php
$url = 'http://www.adserversite.com/ads.php';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$data = curl_exec($curl);
curl_close($curl);

1
尽管是真实和完全准确的,但为了充分披露,使用cURL需要安装cURL扩展,其中allow_url_fopen默认为开启状态 ;) - Berry Langerak
2
你说得对,file_get_contents更可取,但我以前在共享主机上遇到过问题。 - m4t1t0
1
使用PHP 7时,我在allow_url_fopen开启和安装了curl的两种方法上遇到了问题。 - Wolfgang Fahl
有没有办法逐行读取数据?我似乎从文件中读取了一大堆混乱的文本。 - uplearned.com

12
echo file_get_contents('http://www.adserversite.com/ads.php');

谁需要在这个简单的任务中使用curl?


16
注意:如果php.ini中的allow_url_fopen设置为"On",那么在某些共享主机上可能不是这样的,就像@m4t1t0已经提到的那样。我个人曾多次遇到curl已安装但allow_url_fopen被禁用的情况。 - zergussino
1
请注意,file_get_contents比cURL慢得多!https://dev59.com/-Wcs5IYBdhLWcg3wPxrN#24954327 - CodeBrauer
1
还要注意,curl默认会正确检查SSL证书 - PHP只有在5.6版本以后才能做到正确处理,而在早期版本中无法支持SubjectAlternativeName字段。 - Sven

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接