PHP.ini include_path 在 windows 上使用不同的驱动器

PHP.ini include_path on windows with different drives

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

中定义了不同的包含路径
include_path=".;C:\project\a;X:\project\b"

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

require_once("file_b.php");

或与

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

我收到错误

Warning: require_once(X:\project\b\file_b.php): failed to open stream: No such file or directory in C:\project\a\file_a.php on line 2

Fatal error: require_once(): Failed opening required 'X:\project\b\file_b.php' (include_path='.;C:\project\a;X:\project\b') in C:\project\a\file_a.php on line 2

Abort Processing during Fatal-Error: require_once(): Failed opening required 'X:\project\b\file_b.php' (include_path='.;C:\project\a;X:\project\b') Error in Script C:\project\a\file_a.php on Line 2

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

此致, 咬合

我发现过去使用 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

?>

折腾了很久,我的特殊问题终于有了答案。

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

对于我的虚拟硬盘和真实硬盘的混淆,我们深表歉意,感谢您的帮助!

此致, 咬合