当我开始用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);
}