php 读取文件自身内容,与读取文件输出内容

张映 发表于 2010-04-29

分类目录: php

标签:

一,读取文件

先解释一下,什么是读取文件本身,什么叫读取文件输入内容。举个例子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

1 条评论

  1. 彭军 留言

    这真是语言的精妙之处。 相对路径和绝对路径的区别。以前也不是太在意他们的区别。直到有一天帮朋友做一个机票查询的程序的时候。才想到。如果都如相对路径那样读取文件本身的话。那不是没有一点隐私可言了嘛。别人辛辛苦苦给写的程序。咱一个函数就全部获取过来了。哈哈。