当我开始用PHP和MySQL编写我的网站时,我编写的第一个PHP脚本之一是初始化我的数据库的脚本。删除/创建数据库。删除/创建每个表。然后从脚本中的文字加载表。
这一切都很好! Whoohoo: - )
但我更愿意从文件中读取数据,而不是在PHP脚本中对它们进行硬编码。
我有几本关于PHP的书籍,但它们都是面向使用MySQL进行Web开发的。我找不到任何关于读写普通文件的内容。
是的,我知道有关读取TXT文件的stackoverflow存在大量问题,但是当我查看每个文件时,它们都是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文件。但那是为了以后的事。
谢谢!
答案 0 :(得分:23)
<?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);
}
?>
答案 1 :(得分:7)
我需要的是一个简短的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;
}
答案 2 :(得分:3)
好吧,既然你在询问关于这个主题的资源,那么 PHP.net docs 就会有一本书。
一个基本的例子:
<?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);
?>
答案 3 :(得分:2)
为什么你不阅读有关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;
}
答案 4 :(得分:1)
file_get_contents为你完成所有这些并以字符串形式返回文本文件:)
答案 5 :(得分:0)
你想逐行阅读?使用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);
}