我尝试从计算机的不同位置包含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:\中打开所需的'X:\ project \ b \ file_b.php'(include_path ='。; C:\ project \ a; X:\ project \ b')第2行的project \ a \ file_a.php
致命错误期间的中止处理:require_once():无法打开所需的'X:\ project \ b \ file_b.php'(include_path ='。; C:\ project \ a; X:\ project \ b')脚本C:\ project \ a \ file_a.php第2行出错
我已经尝试过我能用知识做的一切,但没有任何作用。 我希望,有人可以解决这个问题。在Windows系统上的不同驱动器上包含路径是否有问题?
祝你好运, bition
答案 0 :(得分:0)
经过很长一段时间,我终于找到了解决我特殊问题的答案。
非常特别,因为我使用BoxCryptor来加密我的D:驱动器。 BoxCryptor创建虚拟设备X:,但它不适用于Apache和PHP。但我可以将BoxCryptor配置为设备X:作为rwal硬盘。在我设置之后,每一件事都可以正常工作。
对于关于我的真实和真实硬盘的困惑感到抱歉,谢谢你的帮助!
祝你好运, bition
答案 1 :(得分:-1)
我在过去发现过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
?>