【发布时间】:2013-05-30 15:35:44
【问题描述】:
我正在使用包含其他文件的文件的第 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
myscript.php
<?php include( "sub/file/x509.php" ); ?>
x509.php
<?php include( "file/asn1.php" ); ?>
asn1.php
<?php echo "included"; ?>
【问题讨论】:
-
请给出返回的错误,并更正
include中的错字,以免被人投诉。 -
@BorisGuéry 我修正了错别字并在下面发布了答案。
-
@bestprogrammerintheworld 为什么?我的回答实际上使它起作用。
-
唐,很好的解决方案!我对那个投了赞成票!:-)
-
@bestprogrammerintheworld 谢谢,PHP 中总有解决方案! ;)
标签: php phpseclib php-include