如何将PHP中的文件内容用于Windows绝对路径?
出于某些原因,我希望将一些数据存储在可移动存储器(即U盘)中。我安装了WAMP软件包,它有一个…/www/文件夹,脚本可以在其中编辑文件等。我希望我的服务器能够从/向可移动存储中的另一个文件夹读取/写入文件 我已经尝试了相对路径,并且可以看到如何将PHP中的文件内容用于Windows绝对路径?,php,windows,apache,wampserver,Php,Windows,Apache,Wampserver,出于某些原因,我希望将一些数据存储在可移动存储器(即U盘)中。我安装了WAMP软件包,它有一个…/www/文件夹,脚本可以在其中编辑文件等。我希望我的服务器能够从/向可移动存储中的另一个文件夹读取/写入文件 我已经尝试了相对路径,并且可以看到文件内容与www/之外的文件夹一起工作(可能是安全问题的原因…)。但是,我的可移动存储是Windows中的E:\驱动器,因此要在其中写入内容,我需要使用绝对路径。我尝试直接使用Windows绝对路径,就像 file_put_contents("C:\exis
文件内容与www/
之外的文件夹一起工作(可能是安全问题的原因…)。但是,我的可移动存储是Windows中的E:\
驱动器,因此要在其中写入内容,我需要使用绝对路径。我尝试直接使用Windows绝对路径,就像
file_put_contents("C:\existing\path\copied\from\explorer\new_file.txt","Stage 3, successfully written");
(首先,在C:\
上,如果由于路径不工作或禁止写入另一个存储器而导致写入失败,则清除),并且该操作失败
那么,有可能吗?我应该使用什么来代替在Windows资源管理器中写入的路径?或者我应该使用另一个函数来实现这一点?或者使用Apache配置为该路径指定一个别名
关键是可移动存储器应在任何时候都可以安全地移动,除了读/写的时候
PS多亏了阿尔瓦罗冈萨雷斯,我想我只是忘记了在我从explorer复制的绝对路径中逃逸\
符号,这就是为什么直接写入失败的原因。在WAMP/www/目录中创建一个单独的目录,并在需要的地方创建一个符号链接。一些好的阅读:在WAMP/www/目录中创建一个单独的目录,并在需要的地方创建一个符号链接。一些好的阅读:只是一个小小的语法问题:
var_dump("C:\existing\path\copied\from\explorer\new_file.txt");
。。。打印如下内容:
string(46) "C:xisting\path\copiedromxplorer
ew_file.txt"
。。。因为您很不幸使用了双引号字符串并存在:
\e
转义(十六进制1B)
\f
formfeed(十六进制0C)
\n
换行符(十六进制0A)
一些有效的替代方案:
'C:\existing\path\copied\from\explorer\new\u file.txt'
“C:\\existing\\path\\copied\\from\\explorer\\new\u file.txt”
“C:/existing/path/copied/from/explorer/new_file.txt”
只是一个小小的语法问题:
var_dump("C:\existing\path\copied\from\explorer\new_file.txt");
。。。打印如下内容:
string(46) "C:xisting\path\copiedromxplorer
ew_file.txt"
。。。因为您很不幸使用了双引号字符串并存在:
\e
转义(十六进制1B)
\f
formfeed(十六进制0C)
\n
换行符(十六进制0A)
一些有效的替代方案:
'C:\existing\path\copied\from\explorer\new\u file.txt'
“C:\\existing\\path\\copied\\from\\explorer\\new\u file.txt”
“C:/existing/path/copied/from/explorer/new_file.txt”
在可移动驱动器中添加别名可能会造成危险的重复,好像不存在别名一样Apache不会在我在Windows上开发的每个PHP项目上使用绝对路径。它们工作完美无瑕。事实上,它们比Windows本身工作得更好,因为我可以使用/
和``作为目录分隔符。你能不能编辑这个问题,解释一下什么代码失败了,以及它到底是如何失败的?如果您得到一个空白屏幕,请了解如何配置PHP以显示错误消息。@阿尔瓦罗冈萨雷斯谢谢,您是对的。我从资源管理器中复制了路径,但没有转义反斜杠。我认为,这是一个比使用符号链接更好的解决方案。你也可以回答这个问题,但我不确定是否可以重新接受,我至少可以+1你的答案。我认为你可以按照建议编辑这个问题,使问题变得清晰,或者用不同的术语重写,以匹配接受的答案(比如“如何访问可移动设备”)。就目前而言,谷歌未来在这里寻求帮助的人都会感到困惑,因为它错误地表明PHP在驱动器号方面存在问题。在可移动驱动器中添加别名可能会造成危险的重复,如果没有,Apache不会在我在Windows上开发的每个PHP项目上使用绝对路径。它们工作完美无瑕。事实上,它们比Windows本身工作得更好,因为我可以使用/
和``作为目录分隔符。你能不能编辑这个问题,解释一下什么代码失败了,以及它到底是如何失败的?如果您得到一个空白屏幕,请了解如何配置PHP以显示错误消息。@阿尔瓦罗冈萨雷斯谢谢,您是对的。我从资源管理器中复制了路径,但没有转义反斜杠。我认为,这是一个比使用符号链接更好的解决方案。你也可以回答这个问题,但我不确定是否可以重新接受,我至少可以+1你的答案。我认为你可以按照建议编辑这个问题,使问题变得清晰,或者用不同的术语重写,以匹配接受的答案(比如“如何访问可移动设备”)。现在的情况是,谷歌未来在这里寻求帮助的人会感到困惑,因为它错误地表明PHP在驱动器号方面存在问题。同样,当移除可移动驱动器时,这种方法会发生什么?你让我犹豫了一会儿,所以我继续测试:)当然,当斗杆未插入时,目标将不可用。但是符号链接本身不会被删除,所以他/她必须设计一个测试,在尝试写入之前,证明木棒是插入的。嗯,是的,木棒必须插入。正如OP所说,“我希望将一些数据存储在一个可移动存储器中”,因此无论采用何种解决方案,都必须使用棍棒。但你到底想说什么?:)PS那些将尝试此方法的人应该知道如何“安全地”删除符号链接(),这对我很好,我已经知道了。同样,当删除可移动驱动器时,此方法会发生什么?您让我犹豫了一会儿,所以我继续测试:)当然,当棒不可用时,目标将不可用