在本教程中,您将学习PHP中的一些重要功能,这些功能足以满足您所有基本的文件读写需求。 您将学习如何读取文件,写入文件,写入文本文件以及检查文件是否存在。
幸运的是,PHP提供了许多功能来读取和写入数据到文件。 在本教程中,我将向您展示从本地或远程文件读取数据的最简单方法,以及如何使用标志按照我们想要的方式写入文件。
检查文件是否存在
尝试从文件中读取数据或向文件中写入内容时,第一步应该是检查文件是否已存在。 尝试从不存在的文件中读取数据将导致PHP发出警告,并可能使您的代码崩溃。
检查文件是否存在的最简单方法是使用PHP file_exists($filename)
函数。 如果存在具有给定$filename
的文件或目录,则返回true
,否则返回false
。 这可能很明显,但是我想指出, $filename
不必只是文件名。 它也可以是绝对路径或相对路径。 例如,我们可以使用prime_numbers.txt或science / project / periodic_table.txt 。
同样重要的是要记住,对于由于安全模式限制而无法访问的文件,该函数也会返回false
。
可以用来检查文件是否存在的另一个函数是is_file()
。 与file_exists()
相反,如果指定的路径指向文件而不是目录,则此函数仅返回true
。
确保文件实际存在
如果您正在编写的代码对特定文件执行大量文件操作,则使用上述功能可能会得到错误的结果。 这是因为将file_exists()
和is_file()
的执行结果都缓存了以提高性能。 PHP还可以缓存其他文件系统函数(如filesize()
, filemtime()
等filesize()
返回的值。
您可以调用clearstatcache()
以确保您正在访问文件的任何信息都是最新的。
通常,只有在单个脚本中多次访问同一文件以了解其状态时,这才是一个问题。 另外,如果您使用unlink()
函数删除脚本中的文件,则将清除缓存的数据。 这基本上意味着您可能不会遇到任何与缓存有关的问题,但是仍然很高兴知道可以清除缓存以防信息过时或在尝试访问有关文件的信息时遇到意外结果。
使用PHP从文件读取数据
在PHP中从文件读取数据的最简单方法之一是借助file_get_contents($filename, $use_include_path, $context, $offset, $maxlen)
函数。 它只会读取整个文件,并以字符串形式将其提供给您。 除第一个参数外的所有参数都是可选的。
第二个参