我可以用PHP读取一个.TXT文件吗


Can I read a .TXT file with PHP?

当我开始用PHP和MySQL编写网站时,我编写的第一个PHP脚本之一是初始化数据库的脚本。删除/创建数据库。删除/创建每个表。然后从脚本中的文字加载表。

一切都很好!呜呜:-)

但我更喜欢从文件中读取数据,而不是在PHP脚本中对它们进行硬编码。

我有几本关于PHP的书,但它们都是面向使用MySQL进行web开发的。我找不到任何关于阅读和写入普通文件的内容。

是的,我知道stackoverflow上有很多关于读取TXT文件的问题,但当我查看每一个文件时,它们都是针对C、C#、VB或Perl的。我开始认为PHP就是不能读取文件:-(

我只需要一个简短的PHP示例,说明如何在服务器上打开TXT文件,依次读取,在屏幕上显示数据,然后关闭文件,如以下伪代码所示:

program readfile;
handle = open('myfile.txt');
data = read (handle);
while (not eof (handle)) begin
    display data;
    data = read (handle);
    end;
close (handle);
end;     

当我到达我的网站上人们上传头像的部分时,我还需要在服务器上写文件,并将其保存为JPG或GIF文件。但那是以后的事了。

谢谢!

来自fread():的PHP手册

<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

编辑根据注释,您可以使用fgets() 逐行读取文件

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail'n";
    }
    fclose($handle);
}
?>

我只需要一个简短的PHP示例,说明如何在服务器上打开TXT文件,依次读取,在屏幕上显示数据,然后关闭文件,如以下伪代码所示:

echo file_get_contents('/path/to/file.txt');

是的,请参阅file_get_contents,您通常不需要循环:

$file = new SPLFileObject('/path/to/file.txt');
foreach($file as $line) {
    echo $line;
}

好吧,既然您在询问有关该主题的资源,PHP.net文档中有一整本关于该主题的书。

一个基本的例子:

<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

为什么不阅读关于fopen 的php文档

 $file = fopen("source/file.txt","r");
  if(!file)
    {
      echo("ERROR:cant open file");
    }
    else
    {
      $buff = fread ($file,filesize("source/file.txt"));
      print $buff;
    }

file_get_contents为您完成所有这些操作,并以字符串形式返回文本文件:)

您想逐行读取吗?使用fgets。

$handle = @fopen("myfile.txt", "r");
if ($handle) {
    while (($content = fgets($handle, 4096)) !== false) {
        //echo $content;
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail'n";
    }
    fclose($handle);
}