他のファイルを含むファイルを持つサードパーティの 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"; ?>