在PHP中進行文件的輸入輸出处理
在PHP上进行文件的输入输出!
我对COBOL感到厌烦。谁能忍受这种像屎一样受限制的语言?我要自由地写像屎一样的代码。文章中有时候写成PHP,有时候写成php,但如果在意就输了。我只是毫无思考地写文章而已。
我已经学过这道题目了,但为了复习基础,我会将其写成一段文章(基本上都是参考php.net)。
在PHP中处理文件时,需要使用fopen函数来打开文件并进行操作。(即使有其他方式,我也不知道!)
fopen函数与C语言等类似,返回一个文件指针作为返回值。
在C语言中,分配给变量的类型必须是FILE,但是PHP很轻松。但是,如果使用这种方法,可能会被大人怒斥。直接将文件赋给变量也没有问题。我认为这种轻松是PHP的特点。老实说,除此之外好像没有其他特点了。。。
获取文件指针!
雖然談話有點跑題,但在php中,可以使用fopen函數來獲取文件的指針。順便一提,這個函數的語法是…
resource fopen (string $filename, string $mode[, bool $use_include_path = false[, resource $context]])
这是出自于http://php.net/manual/en/function.fopen.php的引用。
聪明的人只需从中一瞥就能明白如何使用。顺便说一句,我知道怎么用,所以不需要解释。因为我们是聪明的朋友。
读取文件!
读取文件
下一步是读取文件的方法。在php中,我们使用fread函数来读取文件。该函数的语法是,
string fread (resource $handle, int $length)
这个来源是来自于:http://php.net/manual/ja/function.fread.php
$handle代表文件指针,$length代表要读取的字节数。如果失败,将返回false。
这种方法似乎是用于真正需要读取文件的时候。
文件获取内容
我先前提到了fread函数,但如果只是简单地想将文件内容存储为字符串的话,使用file_get_contents函数似乎更有效率。我不知道这个函数… 函数的写法如下:
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = 0 [, int $maxlen]]]])
如果你是聪明的朋友,你应该能理解这个意思。如果失败了,就会返回false。
需要注意的是,根据函数的规定,参数应该是文件路径而不是文件指针。嗯?好像不需要用到fopen函数……
将内容写入文件!
将数据写入文件。
要写入数据到文件中,需要使用fwrite函数。
这个函数的表达式是 fwrite(data, size, count, file)。
int fwrite ( resource $handle, string $string [, int $length] )
(出处:https://www.php.net/manual/ja/function.fwrite.php)
这样写道。$string 是要写入的字符串。我猜如果你传递了一个 int 类型的变量,它可能会自动将其视为 string 类型处理,所以可以顺利地进行写入。
另外需要注意的是,如果在同一个文件指针上进行二次写入,它似乎会在文件末尾添加。不清楚。
实际的代码示例!
例1(fopen~fwrite~fread):
打开一个文件(fopen),将数据写入文件(fwrite),从文件中读取数据(fread)。
在例子1中,将字符串”Hello”写入文件test.txt,并进行读取并显示。虽然没有实际运行,但应该能正常工作。
<?
if(($fp = fopen("test.txt","a+")) == false) //"a+"は読み込み&書き出し両方行える、常に追記
echo "読み込みエラー!";
fwrite($fp, "Hello");
echo fread($fp);
fclose($fp); //ファイルポインタを閉じる
获取文件内容的示例(file_get_contents)
使用函数file_get_contents和之前示例1中生成的test.txt文件,尝试输出”Hello”。无法确定是否可正常运行。
<?
echo file_get_contents("test.txt");
总结
打开文件指针可以使用fopen,读取可以使用fread,写入可以使用fwrite。
另外,如果只需要读取文件,还可以使用file_get_contents作为另一种方法。
如果能将文件内容输出为字符串,然后进行适当的处理,就可以正常处理了,所以只需要了解这些就可以了。
这篇文章到此为止。
虽然文章长度不大,但内容一般,如果看的话,只需要看最后一段就可以了。顺便提一下,我的 Twitter ID 是@4a9gn_int。
非常感谢阅读。我们不接受意见。