繁体   English   中英

具有不同驱动器的Windows上的PHP.ini include_path

[英]PHP.ini include_path on windows with different drives

我尝试包含来自计算机不同位置的PHP文件。 所以我在php.ini中定义了不同的包含路径

include_path=".;C:\project\a;X:\project\b"

当我尝试从C:\\ project \\ a \\ file_a.php上的PHP脚本中包含文件X:\\ project \\ b \\ file_b.php时

require_once("file_b.php");

或搭配

require_once("X:\project\b\file_b.php");

我得到错误

警告:require_once(X:\\ project \\ b \\ file_b.php):无法打开流:第2行的C:\\ project \\ a \\ file_a.php中没有此类文件或目录

致命错误:require_once():无法在C:\\ project \\ a中打开所需的'X:\\ project \\ b \\ file_b.php'(include_path ='.; C:\\ project \\ a; X:\\ project \\ b') \\ file_a.php在第2行

致命错误期间中止处理:require_once():无法打开所需的'X:\\ project \\ b \\ file_b.php'(include_path ='.; C:\\ project \\ a; X:\\ project \\ b')脚本错误第2行的C:\\ project \\ a \\ file_a.php

我已经尽我所能,尽我所能,但是没有任何效果。 我希望有人可以帮助我解决这个问题。 Windows系统上不同驱动器上的包含路径是否存在问题?

最好的问候,bit子

经过很长一段时间,我终于可以解决我的特殊问题。

这真的很特别,因为我使用BoxCryptor加密我的D:驱动器。 BoxCryptor创建虚拟设备X :,但对于Apache和PHP不存在。 但是我可以将BoxCryptor配置为将设备X:挂载为rwal硬盘驱动器。 我设置好之后,一切正常。

对我的虚拟硬盘和真正的硬盘感到困惑,很抱歉,谢谢您的帮助!

最好的问候,bit子

我过去在WAMP等中发现使用反斜杠是可行的。 只是不要用双引号“ C:\\ path”封装字符串,这将处理@Marc B警告的内容。 而是用单引号'C:\\ path'封装字符串,然后不处理内容。

如果单引号字符串的内容中的反斜杠仍在处理中,请尝试以下操作。

<?php

$path = 'X:/project/b/file_b.php';            // PATH WITH FORWARD SLASHS
$path = str_replace(chr(47) ,chr(92) ,$path); // REPLACE FORWARD WITH BACKWARD SLASHS
require_once($path);                          // RUN FILE

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM