php中file_get_contents和curl_get_contents介绍_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php中file_get_contents和curl_get_contents介绍_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5727字,纯文字阅读大概需要9分钟。
内容图文
![php中file_get_contents和curl_get_contents介绍_PHP教程](/upload/InfoBanner/zyjiaocheng/180/c11cf0a94d8e45c9b4acf56d71908349.jpg)
分享一个实际在用的函数:
file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。
/*比file_get_contents稳定的多!$timeout为超时时间,单位是秒,默认为1s。*/
代码如下 | |
function curl_get_contents($url,$timeout=1) { $curlHandle = curl_init(); curl_setopt( $curlHandle , CURLOPT_URL, $url ); curl_setopt( $curlHandle , CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $curlHandle , CURLOPT_TIMEOUT, $timeout ); $result = curl_exec( $curlHandle ); curl_close( $curlHandle ); return $result; } $hx = curl_get_contents('http://www.bKjia.c0m/'); |
相信使用过file_get_contents函数的朋友都知道,当获取的$url访问不了时,会导致页面漫长的等待,甚至还能导致PHP进程占用CPU达100%,因此这个函数就诞生了。
通过php.ini中的default_socket_timeout设置,默认超时时间是default_socket_timeout = 60
代码如下 | |
max_execution_time = 30 default_socket_timeout = 60 |
假设你使用file_get_contents花费45,而max_execution_time是30,它将超时吗?
答案是NO,因为max_execution_time不影响操作系统调用或stream操作
另一点要指出的的是default_socket_timeout是在socket响应之前计算的,只要得到响应,将会一直执行下去
可以通过以下三种方式设置
代码如下 | |
1 直接在php.ini中修改 default_socket_timeout =120 |
curl的一些常识介绍
保留原file_get_contents函数的原因是当读取本地文件时,用原生的file_get_contents显然更合适。
另来自张宴的file_get_contnets的优化,具体可看:
首先,使用 top 命令查看 CPU 使用率较高的 php-cgi 进程。
代码如下 | |
top - 10:34:18 up 724 days, 21:01, 3 users, load average: 17.86, 11.16, 7.69 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 找其中一个 CPU 100% 的 php-cgi 进程的 PID,用以下命令跟踪一下: strace -p 10747 |
如果屏幕显示:
代码如下 | |
select(7, [6], [6], [], {15, 0}) = 1 (out [6], left {15, 0}) |
那么,就可以确定是 file_get_contents() 导致的问题了。
同样是设置超时时间来解决这个问题。如果没装curl,就必须得用这个方式了。
代码如下 | |
$ctx = stream_context_create(array( |
http://www.bkjia.com/PHPjc/631590.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631590.htmlTechArticlephp中file_get_contents和curl_get_contents介绍 有需要的朋友可参考一下。 分享一个实际在用的函数: file_get_contents() 函数是用于将文件的内容读入...
内容总结
以上是互联网集市为您收集整理的php中file_get_contents和curl_get_contents介绍_PHP教程全部内容,希望文章能够帮你解决php中file_get_contents和curl_get_contents介绍_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。