php读取文件内容几种正确方法

 更新时间:2016年11月25日 15:56  点击:1991

//方法一 用while来些fgets一行行读
$file_name="1.txt";

 代码如下 复制代码

$fp=fopen($file_name,'r');

 while(!feof($fp))
 {
  $buffer=fgets($fp,4096);
  echo $buffer."<br>";
 }
 fclose($fp);


 
// 方法二 用file一次保存到数组再用foreach输出

 代码如下 复制代码
$array = file( $file );
foreach( $array as $v =>$_v )
{
  echo $_v,'<br />';
}


//方法三用file_get_contents一次读出

 代码如下 复制代码
if( is_file( $file_name ) )
{
 $cn = file_get_contents( $file_name );
 echo $cn;
}


/*
相关函数参考地址
fopen http://www.111cn.net/phper/18/d5da4dcc30303f7684a91dec184e24fc.htm
feof 是否到文件末
fgets http://www.111cn.net/phper/21/php-fgets.htm
fclose 关闭
file http://www.111cn.net/phper/24/f5d9e092cfa826b89c45b339bdd3dd4f.htm
file_get_contents http://www.111cn.net/phper/24/f8d52eaae81ea27383375ead36ffbd4d.htm
foreach http://www.111cn.net/phper/18/foreach-foreach.htm
*/

<?php教程

 代码如下 复制代码

HtmlHead("选择解压文件:") ;

if ( !IsSet($HTTP_POST_VARS['submit']) )
{
 TestWriteable() ;
 $gzip_info = "" ;
 echo "check zlib support... " ;
 if ( !function_exists("gzopen") )
 {
  $gzip_info = "<font color="red">注意! 您的空间没有zlib支持,因此用
  <a href="http://www.111cn.net/" target="_blank"><font color="blue">phpZip</font></a>
  压缩文件时,不要选择“压缩成Gzip格式”,否则将无法正确解压!</font>" ;
 }
 else
 {
  $gzip_info = "<font color="blue">恭喜! 您的空间支持zlib压缩,强烈建议用
  <a href="http://www.111cn.net/"><font color="red" target="_blank">phpZip</font></a>
  压缩文件时,选中“压缩成Gzip格式”,将会大大减少文件大小!</font>" ;
 }
 echo " ----------------- OK!<br> " . $gzip_info ;
 
 echo "<br><br><br><br>
<form action="{$_SERVER["PHP_SELF"]}" method="post" enctype="multipart/form-data">
<table align="center" width="450">
<tr><td height="20" colspan="2">请先选择压缩文件的位置,然后点击“确定”按钮: <p></td></tr>
<tr>
<td><input type="radio" name="file_type" value="upload" checked onclick="this.form.upload_file.disabled=false; this.form.server_filename.disabled=true">文件从本地上传: </td>
<td>
<input name="upload_file" type="file" style="color:#0000ff">
</td>
</tr>

<tr><td colspan=2 height=10></td></tr>

<tr>
<td><input type="radio" name="file_type" value="server" onclick="this.form.upload_file.disabled=true; this.form.server_filename.disabled=false">指定服务器上文件:</td>
<td><input name="server_filename" value="data.dat.gz" style="color:#0000ff" disabled >(可以用"."表示当前目录)</td>
</tr>

<tr><td colspan="2" align=center><br><input type="submit" name="submit" value="确定"></td></tr>
</table>
</form>
" ;
 HtmlFoot() ;
 exit ;
}

if ( $_POST['file_type'] == 'upload' )
{
 $tmpfile = $_FILES['upload_file']['tmp_name'] ;
}
else
{
 $tmpfile = $_POST['server_filename'] ;
}

if ( !$tmpfile )
{
 exit("无效的文件或文件不存在,可能原因有文件大小太大,上传失败或没有指定服务器端文件等") ; 
}

$bgzExist = FALSE ;
if ( function_exists("gzopen") )
{
 $bgzExist = TRUE ;
}

$alldata = "" ;
$pos = 0 ;

$gzp = $bgzExist ? @gzopen($tmpfile, "rb") : @fopen($tmpfile, "rb") ;
$szReaded = "has" ;
while ( $szReaded )
{
 $szReaded = $bgzExist ? @gzread($gzp, 2*1024*1024) : @fread($gzp, 2*1024*1024) ;
 $alldata .= $szReaded ;
}
$bgzExist ? @gzclose($gzp) : @fclose($gzp) ;

$nFileCount = substr($alldata, $pos, 16) ;
$pos += 16 ;

$size = substr($alldata, $pos, 16) ;
$pos += 16 ;

$info = substr($alldata, $pos, $size-1) ;  // strip the last ' '
$pos += $size ;

$info_array = explode(" ", $info) ;

$c_file = 0 ;
$c_dir = 0 ;

foreach ($info_array as $str_row)
{
 list($filename, $attr) = explode("|", $str_row);
 if ( substr($attr,0,6) == "[/dir]" )
 {
  echo "End of dir $filename<br>";
  continue;
 }
 
 if ( substr($attr,0,5)=="[dir]" )
 {
  if ( @mkdir($filename, 0777) )
   echo "Make dir $filename<br>";
  $c_dir++ ;
 }
 else
 {
  $fp = @fopen($filename, "wb") or exit("不能新建文件 $filename ,因为没有写权限,请修改权限");
  @fwrite($fp, substr($alldata, $pos, $attr) );
  $pos += $attr ;
  fclose($fp);
  echo "Create file $filename<br>";
  $c_file++ ;
 }
}

if ( $_POST['file_type'] == 'upload' )
{
 if ( @unlink($tmpfile) ) echo "删除临时文件 $tmpfile...<br>" ;
}

echo "<h1>操作完毕! 共解出文件 $c_file 个, 文件夹 $c_dir 个,谢谢使用!</h1><p>" ;
HtmlFoot() ;


function TestWriteable()
{
 $safemode = '
新建一文件,命名为 unzip2.php (或其它名字), 其内容如下:

<?php
copy("unzip.php", "unzip_safe.php") ;
header("location:unzip_safe.php") ;
?>

将这个文件上传到服务器,与unzip.php同一个目录下,
运行 unzip2.php 这个程序。

如果还是不行的话,那就是空间实在不支持,没有办法,很对不住您,浪费您的时间.
 ' ;
 echo "check PHP version... " . phpversion() . " -------- OK!<br> " ;
 echo "testing Permission... " ;

 $fp = @fopen("phpzip.test", "wb") ;
 if ( FALSE !== $fp )
 {
  fclose($fp) ;
  @unlink("phpzip.test") ;
 }
 else
 {
  exit("当前目录没有写的权限,请将当前目录属性修改为:777 ") ;
 }

 $dir = "phpziptest" ;
 $file = "$dir/test.txt.php" ;
 @mkdir($dir, 0777) ;
 $fp = @fopen($file, "wb") ;
 if ( FALSE === $fp )
 {
  @rmdir($dir) ;
  exit ("没有权限在程序创建的文件夹下创建文件 ,很可能是PHP安全模式所致,解决方法如下:<p><center><textarea cols=110 rows=15>$safemode</textarea></center>") ;
 }
 @fclose($fp) ;
 @unlink($file) ;
 @rmdir($dir) ;
 echo " ----------------- OK!<br> " ;
}

function HtmlHead($title="", $css教程_file="")
{
 echo "<html> "
  . " "
  . "<head> "
  . "<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> "
  . "<title>$title</title> "
  . "<style type="text/css"> "
  . "body,pre,td {font-size:12px; background-color:#fcfcfc; font-family:Tahoma,verdana,Arial} "
  . "input,textarea{font-size:12px; background-color:#f0f0f0; font-family:Tahoma,verdana,Arial} "
  . "</style> "
  . "</head> "
  . " "
  . "<body> " ;
}

function HtmlFoot()
{
 echo "<center><font size="5" face="楷体_GB2312" color="red">使用完请立即删除本文件,以避免被其它人发现使用!</font></center> "
  . "<br><hr color="#003388"> "
  . "<center> "
  . "<p style="font-family:verdana; font-size:12px">Contact us: "
  . "<a href="http://www.111cn.net/" target="_blank">http://www.111cn.net/</a></p> "
  . "</center> "
  . "</body> "
  . " "
  . "</html>" ;
}

?>

如果我们想添加到一个文件,我们需要以追加方式打开它。下面的代码了这一点。

If we want to add on to a file we need to open it up in append mode. The code below does just that.

*/

 代码如下 复制代码

$text = "test.txt";
if( file_exists( $text ) && is_file( $text ) )
{
 $fh = fopen($myFile, 'a');
 if( $fh )
 {
  $stringData = "New www.111cn.net 1 ";
  if( fwrite($fh, $stringData))
  {
   echo '增加'.$stringData.'成功';
  }
  else
  {
   die('文件不可写');
  }
  $stringData = "New 111cn.net 2 ";
  fwrite($fh, $stringData);
  fclose($fh);

 }
}

/*
本站原创教程转载注明来源于www.111cn.net
*/

创建文件在php中会用到fopen来创建,会用的\\\"w\\\"或\\\"w+“来创建,所面有关于他的简要说明 fopen函数需要两个重要的信息块正常运行。首先,我们必须提供的文件,我们希望它来打开它命名。第二,我们必须告诉我们什么功能上与该文件做计划

*/

 代码如下 复制代码
$fn = 'www.111cn.net.txt'
$fcon ='php 如何创建一个文件'; //内容
if($f=fopen($fn,"w"))
 {
       if( fwrite($f, $fcon) )
    {
      echo '写文件成功';
    }
    else
    {
      echo '文件不可写';
    }
    fclose($f);
 }
 else
 {
  echo '不能创建文件,请检查权限';
 }
   


/*
$fn = 'www.111cn.net.txt';要创建文件名

"w" 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
fclose($r) //关闭打开的文件。 fclose需要的文件句柄被关闭
本站原创教程转载注明来源www.111cn.net
*/

本程序可以显示WEB目录下的所有目录及后缀为php,php3,htm,html的文件名,并可以查看源文件,很适合作为编写php程序的工具。

第一个文件名为 phplist.inc

 代码如下 复制代码
<?
global $htmlroot;
$htmlroot="/web/html"; //"/web/html"是apache的文档根目录,用户可以根据自己的配置修改
?>

第二个文件名为 codeshow.php

 代码如下 复制代码
<?
highlight_file($filename); //高亮显示文件代码
?>

这个是主程序名为 phplist.php

 代码如下 复制代码
<?
require ("phplist.inc");
if ($rootpath=="") {$rootpath=$htmlroot;}
function filelist($pathname){ //遍历所有的文件和目录,$pathnam为起始目录,$searchs为搜索关键字
global $htmlroot;
if (eregi("[/][.][.]$",$pathname)) {
$temp=split("[/]",$pathname);
$pathname="";
for ($tt=1;$tt<(count($temp)-2);$tt++)
$pathname=$pathname."/".$temp[$tt];
}
echo $pathname."
";
$handle=opendir($pathname); //打开目录
if (@chdir($pathname)) { //cd 进入目录,若无权限则不进入
$file = readdir($handle); //读出所有当前目录下的元素名,第一次读出为‘。’,指上层目录
while ($file = readdir($handle)) { //若有元素就进行以下处理
$fname=$pathname."/".$file; //将元素名与当前目录名结合组成完整的文件名,并赋值给$fname
if ((is_file($file)) and (ereg(".php[3]{0,1}$",$file) or ereg(".htm[l]{0,1}$",$file))) //判断是否为文件并且是否以.php和.php3结尾
{
$temppp=split($htmlroot,$fname);
echo "<a href=$temppp[1]>".$file."</a>   ".filesize($file)."bytes      <a href=codeshow?filename=$fname><font size=-1>源文件</font></a>
";
//findinfile($fname,$searchs); //调用findinfile函数
}
elseif (is_dir($fname)) { //判断是否为目录
linkres($fname);
//filelist($fname,$searchs);} //递归调用filelist函数
}
}
chdir(".."); //结束当前递归,返回上层
}
closedir($handle); //关闭当前目录读取
}
//
function linkres($filename){
$tpath=split("/web/html",$filename);
$turepath=$tpath[1];
ereg("[^\/~]{0,}$",$filename,$res);
//$ft=filetitle($filename);
//if ($ft=="") $ft="无标题";
echo "<a href=phplist.php?rootpath=$filename>".$res[0]."</a>   <dir>
";
}
//
filelist($rootpath);

?>

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07