0

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

2 に答える 2