您可以在服务器执行PHP文件之前将其内容包含到另一个PHP文件中。有两个PHP函数可用于将一个PHP文件包含到另一个PHP中。
include()函数
require()函数
include()函数获取指定文件中的所有文本,并将其复制到使用includ函数的文件中。如果加载文件时出现任何问题,则include()函数将生成警告,但脚本将继续执行。
百度 ' ;echo '新浪 ';echo '腾讯
';?>
require()函数获取指定文件中的所有文本,并将其复制到使用include函数的文件中。如果加载文件时出现任何问题,那么require()函数将生成致命错误并停止脚本的执行。
因此,require()和include()除了处理错误条件之外没有区别。建议使用require()函数而不是include(),因为如果文件丢失或命名错误,脚本不应继续执行。
百度 ' ;echo '新浪 ';echo '腾讯
';?>
fopen()函数用于打开文件。它需要两个参数,首先说明文件名,然后说明操作模式。
对打开的文件进行更改后,使用fclose()函数关闭它很重要。fclose()函数需要一个文件指针作为参数,然后在关闭成功时返回true,如果失败则返回false。
Mode | Purpose |
---|---|
r | 以只读方式打开文件。 |
r+ | 打开文件进行读取和写入 |
w | 打开文件仅写入。 将文件指针放在文件的开头。 并将文件截断为零长度。如果文件没有存在,然后尝试创建文件。 |
w+ | 打开文件仅用于读取和写入。 将文件指针放在文件的开头。 并将文件截断为零长度。如果文件没有存在,然后尝试创建文件 |
a | 仅打开文件进行写入。 将文件指针放在文件的末尾。 如果文件不存在,则会尝试创建文件。 |
a+ | 打开文件仅用于读取和写入。 将文件指针放在文件的末尾。 如果文件不存在,则会尝试创建文件 |
下面是用PHP读取文件所需的步骤。
使用fopen()函数打开文件。
使用filesize()函数获取文件的长度。
使用fread()函数读取文件的内容。
使用fclose()函数关闭文件。
echo "Error in opening file";exit();}$filesize = filesize($filename);$filecontent = fread($file, $filesize);fclose($file);echo "File size:".$filesize." bytes.";echo "
";echo "File content:".$filecontent;?>
// testFile.txt
This is the content to be read!
fwrite()函数写入新文件或将文本附加到现有文件。此函数需要两个参数来指定文件指针和要写入的数据字符串。除此之外,可以包括第三个整数参数来指定要写入的数据的长度。如果包含第三个参数,则在达到指定长度后将停止写入。
// 写
echo "error in opening file";exit();}$filecontent = "This is what I want to write";fwrite($file, $filecontent);fclose($file);?>// 读
echo "Error in opening file";exit();}$filesize = filesize($filename);$filecontent = fread($file, $filesize);fclose($file);echo "File size:".$filesize." bytes.";echo "
";echo "File content:".$filecontent;?>
PHP脚本可以与HTML表单一起使用,以允许用户将文件上传到服务器。一开始,文件被上传到临时目录,然后通过PHP脚本重新定位到目标位置。
通常,在写入文件时,临时位置和最终位置都必须设置允许文件写入的权限。如果其中一个设置为只读,则进程将失败。
上传的文件可以是文本文件、图像文件或任何文档。
上传文件的过程遵循以下步骤:
$_FILES是PHP的全局变量,这个变量是一个关联的二维数组,保存与上传文件相关的所有信息
例如,如果上传表单中输入的name属性值是file,那么PHP将创建以下五个变量:
5098152){$errors[] = "it must be exactly 5MB";}// 判断$errors数组是否为空if (empty($errors) == true) {// 如果errors数组为空,即可将临时文件上传到指定位置move_uploaded_file($file_tmp, "images".$file_name);}else {// 如果errors数组不为空,则打印$errors数组中信息print_r($errors);}}?>
- 临时目录中的临时文件:
- 实际文件名:
- 文件字节大小:
- 文件类型:
// 判断name属性值是否是'image'$file_tmp = $_FILES['image']['tmp_name']; // 获取临时目录中的临时文件$file_name = $_FILES['image']['name']; // 获取上传文件的实际文件名$file_size = $_FILES['image']['size']; // 获取上传文件的字节大小$file_type = $_FILES['image']['type']; // 获取上传文件的MIME类型$file_ext = strtolower(end(explode(".", $_FILES['image']['name'])));/*explode():以‘.’作为分割符,将字符串转化为数组end():获取数组最后一个元素strtolower():将全部字符变为小写$file_ext:获取文件名后缀*/$errors = array(); // 用于存储错误信息$extensions = array("jpg","jpeg","png"); // 标记文件扩展名 // 判断$file_ext是否存在指定的文件扩展名数组中if (in_array($file_ext, $extensions) == false) {$errors[] = "extension not allowed";}// 判断文件字节大小是否超过5MBif($file_size > 5098152){$errors[] = "it must be exactly 5MB";}// 判断$errors数组是否为空if (empty($errors) == true) {// 如果errors数组为空,即可将临时文件上传到指定位置move_uploaded_file($file_tmp, "images".$file_name);}else {// 如果errors数组不为空,则打印$errors数组中信息print_r($errors);}}?>