我正在使用包含其他文件的文件的第 3 方 php 库 ( phpseclib )。只有当我将它安装在我包含第一个文件的任何目录的“根”中时,它似乎才有效。如果我把它放在一个子文件夹中,phpseclib 文件中的包含将无法找到其他文件,尽管它们是相对的!
这有效(直接安装在我的文件夹中):
include( "File/X509.php" );
这不起作用(将其安装在我文件夹的子文件夹中):
include( "phpseclib/File/X509.php" );
失败的是 X509.php 调用包含文件:
require_once('File/ASN1.php');
我知道会发生这种情况,因为一旦我将 x509.php 包含到我的脚本中,代码就会在那里执行。在不更改包含库中的 PHP 代码的情况下,有什么方法可以使它工作吗?要使包含使用相对于我安装它的位置的路径?
例子:
假设一个文件结构:
/myfolder/myscript.php
/myfolder/sub/file/x509.php
/myfolder/sub/file/asn1.php
我的脚本.php
<?php include( "sub/file/x509.php" ); ?>
x509.php
<?php include( "file/asn1.php" ); ?>
asn1.php
<?php echo "included"; ?>