• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP中curl_init和file_get_contents配合使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

PHP源码的扩展库中默认存在curl的扩展,编译就可以直接安装。但之前测试过一个远程xml获取代码,使用了curl函数,在刚搭建的vps上无法运行。通过探针查看,发现curl扩展并没有安装上去。

本来可以重新在apache上添加curl扩展的,但是考虑到以后有些主机并不一定支持curl,为了增加程序的兼容性,于是对源代码做了如下更改:

function malu_get_url_content($getxml) {
if(function_exists(\'curl_init\')) {
$ch = curl_init();
$timeout = 60;  //curl超时时间
curl_setopt ($ch, CURLOPT_URL, $getxml);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo " (curl) ";
} else {
$ctx = stream_context_create(array(
\'http\' => array(
\'timeout\' => 60 //设置一个超时时间,单位为秒
)
)
);
$file_contents = file_get_contents($getxml, 0,$ctx);
echo " (file_get) ";
}
return $file_contents;
}

以上函数直接使用,$getxml变量传递URL信息,返回变量$file_contents传出获取到的内容。

对于判断函数还可以这样写:

if(function_exists(\'file_get_contents\')) {

优先判断是否支持file_get_contents,这样一来可以根据需要自己调整。两函数均进行了超时控制,防止远程链接失效而导致服务器负载过大。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php使用curl_init()和curl_multi_init()多线程的速度比较详解发布时间:2022-07-10
下一篇:
Apache2.2.4php5.2.1mysql配置方法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap