Maison >développement back-end >tutoriel php >Définition et utilisation de la fonction PHP file_get_contents()

Définition et utilisation de la fonction PHP file_get_contents()

巴扎黑
巴扎黑original
2017-05-24 14:25:023447parcourir

定义和用法

file_get_contents() 把整个文件读入一个字符串中。

该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。

语法

file_get_contents(path,include_path,context,start,max_length)

参数描述:

path    必需。规定要读取的文件。    

include_path    可选。如果您还想在 include_path(在 php.ini 中)中搜索文件的话,请设置该参数为 '1'。    

context    可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 NULL,则忽略。    

start    可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 中新增的。    

max_length    可选。规定读取的字节数。该参数是 PHP 5.1 中新增的。    

提示和注释

提示:该函数是二进制安全的。(意思是二进制数据(如图像)和字符数据都可以使用此函数写入。)

实例用法展示:

file_get_contents函数轻松采集html数据:

<?php 
//全国,判断条件是$REQUEST_URI是否含有html 
if (!strpos($_SERVER["REQUEST_URI"],".html")) 
{ 
$page="http://qq.ip138.com/weather/"; 
$html = file_get_contents($page,&#39;r&#39;); 
$pattern="/<B>全国主要城市、县当天和未来五天天气趋势预报在线查询<\/B>(.*?)<center style=\"padding\:3px\">/si"; 
//正则匹配之间的html 
preg_match($pattern,$html,$pg); 
echo ""; 
//正则替换远程地址为本地地址 
$p=preg_replace(&#39;/\/weather\/(\w+)\/index.htm/&#39;, &#39;tq.php/$1.html&#39;, $pg[1]); 
echo $p; 
} 
//省,判断条件是$REQUEST_URI是否含有? 
else if(!strpos($_SERVER["REQUEST_URI"],"?")){ 
//yoyo推荐的使用分割获得数据,这里是获得省份名称 
$province=explode("/",$_SERVER["REQUEST_URI"]); 
$province=explode(".",$province[count($province)-1]); 
$province=$province[0]; 
//被注释掉的是我自己写出来的正则,感觉写的不好,但效果等同上面 
//preg_match(&#39;/[^\/]+[\.(html)]$/&#39;,$_SERVER["REQUEST_URI"],$pro); 
//$province=preg_replace(&#39;/\.html/&#39;,&#39;&#39;,$pro[0]); 
$page="http://qq.ip138.com/weather/".$province."/index.htm"; 
//获取html数据之前先尝试打开页面,防止恶意输入地址导致出错 
if (!@fopen($page, "r")) { 
die("对不起,该地址不存在!<a href=javascript:history.back(1)>点击这里返回</a>"); 
exit(0); 
} 
$html = file_get_contents($page,&#39;r&#39;); 
$pattern="/五天天气趋势预报<\/B>(.*?)请输入输入市/si"; 
preg_match($pattern,$html,$pg); 
echo ""; 
//正则替换,获取省份,城市 
$p=preg_replace(&#39;/\/weather\/(\w+)\/(\w+).htm/&#39;, &#39;$2.html?pro=$1&#39;, $pg[1]); 
echo $p; 
} 
else { 
//市,通过get传递省份 
$pro=$_REQUEST[&#39;pro&#39;]; 
$city=explode("/",$_SERVER["REQUEST_URI"]); 
$city=explode(".",$city[count($city)-1]); 
$city=$city[0]; 
//preg_match(&#39;/[^\/]+[\.(html)]+[\?]/&#39;,$_SERVER["REQUEST_URI"],$cit); 
//$city=preg_replace(&#39;/\.html\?/&#39;,&#39;&#39;,$cit[0]); 
$page="http://qq.ip138.com/weather/".$pro."/".$city.".htm"; 
if (!@fopen($page, "r")) { 
die("对不起,该地址不存在!<a href=javascript:history.back(1)>点击这里返回</a>"); 
exit(0); 
} 
$html = file_get_contents($page,&#39;r&#39;); 
$pattern="/五天天气趋势预报<\/B>(.*?)请输入输入市/si"; 
preg_match($pattern,$html,$pg); 
echo ""; 
//获取真实的图片地址 
$p=preg_replace(&#39;/\/image\//&#39;, &#39;http://qq.ip138.com/image/&#39;, $pg[1]); 
echo $p; 
} 
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn