file_get_contents是打工文件或URL获取内容的方法,比其稳定的还有curl_get_contents

相信使用过file_get_contents函数的朋友都知道,当获取的$url访问不了时,会导致页面漫长的等待,甚至还能导致PHP进程占用CPU达100%,因此这个函数就诞生了

分享一个实际在用的函数:

复制代码 代码如下:

/*比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.jb51.net‘);

相信使用过file_get_contents函数的朋友都知道,当获取的$url访问不了时,会导致页面漫长的等待,甚至还能导致PHP进程占用CPU达100%,因此这个函数就诞生了。curl的一些常识介绍
保留原file_get_contents函数的原因是当读取本地文件时,用原生的file_get_contents显然更合适。
另来自张宴的file_get_contnets的优化,具体可看:http://www.jb51.net/article/28030.htm
同样是设置超时时间来解决这个问题。如果没装curl,就必须得用这个方式了。

复制代码 代码如下:

$ctx = stream_context_create(array(
‘http‘ => array(
‘timeout‘ => 1 //设置一个超时时间,单位为秒
)
)
);
file_get_contents("http://www.jb51.net/", 0, $ctx);

另外,据不完全测试,使用curl获取页面比用file_get_contents稳定的多。

时间: 2024-11-11 04:34:11

file_get_contents是打工文件或URL获取内容的方法,比其稳定的还有curl_get_contents的相关文章

OC从文件或者URL获取字符串,以及写入文件

OC读取或写入文件 1 /** 2 * initWithContentsOfFile:从文件获取内容 3 * initWithContentsOfURL:从URL获取内容 4 * writeToFile:写入文件 5 * atomically:原子性(文件写入的时候不会中断,在执行完毕之前不会被任何其它任务或事件中断.) 6 */ 7 #import <Foundation/Foundation.h> 8 9 int main(int argc, const char * argv[]) {

从指定文件(字节数组)获取内容以及获取长度

package cn.felay.io; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /** * @author <a mailto:[email protected]>felayman</a> * @t

iOS沙盒文件夹及获取路劲方法

iPhone沙盒中有四个文件夹,分别是:documents.tmp.app.library. 1.Documents :用户生成的文档或数据,或者应用不能重新新创建的数据,存储在/Documents目录下,并且会被自动备份到iCloud: 2.AppName.app :应用程序的包存储在/app目录下.由于应用程序必须经过签名,所以该目录下的内容不能修改,否则程序可能无法启动: 3.tmp:临时文件存放在该目录下(应用程序再次启动时不需要的信息,应用需要写到本地存储,内部使用的临时数据,但不需要

从文件路径中获取文件名的方法

//根据文件路径截取文件名    public String getfileName(String s) throws Exception{          s.trim();              String fileName = s.substring(s.lastIndexOf("/")+1);             //或者            String fileName = s.substring(s.lastIndexOf("\\")+1

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲-编写spiders爬虫文件循环抓取内容- 编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield Request() parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 # -*- coding:

Python快速开发分布式搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容

编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield Request() parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 # -*- coding: utf-8 -*- import scrapy from scrapy.http import Request

对指定URL获取其titile

最近在广告投放时需要找到一批强项关的人群, 现在发现了指定的一些URL可能会跟给广告相关,所以需要对每个URL 的网页内容进行解析,以便能判断URL 是否与该广告相关. 我这里使用python中的urllib或urllib2包对URL 的内容提取.方法如下: #!/usr/bin/python # -*- coding: utf-8 -*- import urllib2 import re url='http://segmentfault.com/q/1010000000124036' html

Scala 获取一个url的内容存到本地文件

1, 下载有效url的内容 /** * 获取一个有效的url地址的内容存到本地的本件中 * @param url * @param file */ def downloadUrlFile(url: String, file: String) = { val pw = new PrintWriter(file) pw.write(Source.fromURL(url, "utf-8").mkString) }

使用UrlConnection请求一个url地址获取内容

访问网络需要加Internet权限:android.permission.INTERNET 使用UrlConnection请求一个url地址获取内容:             //1.创建一个Url对象                 URL url = new URL(url_str);             //2.获取一个UrlConnection对象                 HttpURLConnection connection = (HttpURLConnection)ur