一,读取文件
先解释一下,什么是读取文件本身,什么叫读取文件输入内容。举个例子test.php里面的内容<?php echo "test"; ?>
1,读取文件本身就是读取文件内所有内容,读取后就能得到<?php echo "test"; ?>
2,读取文件输出内容是读取文件所表现出来的东西,读取后得到test
二,fopen方法
1,读取文件本身
<?php $filename = "test.php"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize ($filename)); fclose($handle); echo strlen($contents); ?>
2,读取文件输出内容
<?php $filename = "http://localhost/test/test.php"; $handle = fopen($filename, "r"); $contents = ""; while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); echo strlen($contents); ?>
上面二个读取的文件是同一个,但是为什么会不一样呢,http://localhost/test/test.php,在这里test.php文件被解释了,fopen只是得到这个脚本所输入的内容,看看php官方网站的解释吧
fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。
三,file方法
1,读取文件本身
<?php $filename = "test.php"; $content = file($filename); //得到数组 print_r($content); ?>
2,读取文件显示输出内容
<?php $filename = "http://localhost/test/test.php"; $content = file($filename); print_r($content); ?>
四,file_get_contents方法
1,读取文件本身
<?php $filename = "test.php"; $content = file_get_contents($filename); //得到字符串 echo strlen($content); ?>
2,读取文件显示输出内容
<?php $filename = "http://localhost/test/test.php"; $content = file_get_contents($filename); echo strlen($content); ?>
五,readfile方法
1,读取文件本身
<?php $filename = "test.php"; $num = readfile($filename); //返回字节数 echo $num; ?>
2,读取文件显示输出内容
<?php $filename = "http://localhost/test/test.php"; $num = readfile($filename); //返回字节数 echo $num; ?>
六,ob_get_contents方法
1,读取文件显示输出内容
<?php ob_start(); require_once('bbb.php'); $content = ob_get_contents(); ob_end_clean(); echo strlen($content); ?>
总结
php,读取文件的方法很多,读取url的方法也很多,个人总结了一下,如有不对请大家指正,如果有不足请大家补充。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/php/707.html
这真是语言的精妙之处。 相对路径和绝对路径的区别。以前也不是太在意他们的区别。直到有一天帮朋友做一个机票查询的程序的时候。才想到。如果都如相对路径那样读取文件本身的话。那不是没有一点隐私可言了嘛。别人辛辛苦苦给写的程序。咱一个函数就全部获取过来了。哈哈。