Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将PHP中的文件内容用于Windows绝对路径?_Php_Windows_Apache_Wampserver - Fatal编程技术网

如何将PHP中的文件内容用于Windows绝对路径?

如何将PHP中的文件内容用于Windows绝对路径?,php,windows,apache,wampserver,Php,Windows,Apache,Wampserver,出于某些原因,我希望将一些数据存储在可移动存储器(即U盘)中。我安装了WAMP软件包,它有一个…/www/文件夹,脚本可以在其中编辑文件等。我希望我的服务器能够从/向可移动存储中的另一个文件夹读取/写入文件 我已经尝试了相对路径,并且可以看到文件内容与www/之外的文件夹一起工作(可能是安全问题的原因…)。但是,我的可移动存储是Windows中的E:\驱动器,因此要在其中写入内容,我需要使用绝对路径。我尝试直接使用Windows绝对路径,就像 file_put_contents("C:\exis

出于某些原因,我希望将一些数据存储在可移动存储器(即U盘)中。我安装了WAMP软件包,它有一个…/www/文件夹,脚本可以在其中编辑文件等。我希望我的服务器能够从/向可移动存储中的另一个文件夹读取/写入文件

我已经尝试了相对路径,并且可以看到
文件内容
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那些将尝试此方法的人应该知道如何“安全地”删除符号链接(),这对我很好,我已经知道了。同样,当删除可移动驱动器时,此方法会发生什么?您让我犹豫了一会儿,所以我继续测试:)当然,当棒不可用时,目标将不可用