在PHP中可用的相应内置包装器的帮助下,各种URL样式协议可与文件系统功能一起使用。还可以使用stream_wrapper_register()函数定义自定义包装器。
PHP中的默认包装器是 file://,它表示本地文件系统。如果未显式使用其他协议,则PHP解析器会将其视为文件系统包装器。默认情况下, 要给文件系统函数fopen(),file_get_contents()等使用的filename参数使用file://协议。
如果文件名不是以正斜杠,反斜杠或Windows中的驱动器号开头,则将其路径视为相对于当前目录的路径。但是,在fopen()
和file_get_contents()函数中,可以在 include_path指令中提到的位置中搜索文件名。
file://包装器支持同时读/写操作,创建和删除目录以及重命名文件。另外,文件访问不受php.ini配置设置中的allow_url_fopen指令的限制。
文件名以不同可能的方式表示如下-
//绝对路径
$file=fopen("C:/xampp/php/test/test.txt","w");
//相对路径(假设当前工作目录为c:\ xampp \ php,在tst子目录中打开文件)
$file=fopen("test/test.txt","w");
//当前路径。假设文件为当前目录,文件将在c:\ xampp \ php \ test目录中打开
$file=fopen("test.txt","w");
//使用file:// protocol作为绝对路径
$file=fopen("file:///c:/xampp/php/test/test.txt","w");
//将file:// protocol用于文档根目录中的文件
$file=fopen("file://localhost/test/test.txt","w");