[英]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.