このバグにより、過去 64 分間で私の合理的思考力が枯渇し、どうすればよいか本当にわかりません。
インクルードファイルで次の3行を使用すると:
var_dump(file_exists('G:/xampp/htdocs/myproject/public_html/includes/htmlPurifierAndMarkdown.php')); //retuurns true
var_dump(__FILE__);
include '../htmlPurifierAndMarkdown.php'; //gives error
次の出力が得られます。
boolean true
string 'G:\xampp\htdocs\myproject\public_html\includes\classes\genral.class.php' (length=71)
( ! ) Warning: include(../htmlPurifierAndMarkdown.php) [function.include]: failed to open stream: No such file or directory in G:\xampp\htdocs\myproject\public_html\includes\classes\genral.class.php on line 4
Call Stack
# Time Memory Function Location
1 0.0005 345328 {main}( ) ..\add.php:0
2 0.0036 382408 include( 'G:\xampp\htdocs\myproject\public_html\includes\classes\events.class.php' ) ..\add.php:28
3 0.0041 398024 include( 'G:\xampp\htdocs\myproject\public_html\includes\classes\standardpost.class.php' ) ..\events.class.php:2
4 0.0047 413928 include( 'G:\xampp\htdocs\myproject\public_html\includes\classes\genral.class.php' ) ..\standardpost.class.php:2
手短に:
- 最初の行は、ファイルが私の想像の一部ではなく、実際に存在することを示しています。
- 2 行目は、呼び出しスクリプトの場所を示しています。パスを詳しく調べると、含めようとしているファイルが親ディレクトリに存在することがわかります。
- インクルード関数は、ファイルが存在しないことを示しています
だから私はただ想像しているだけですか、それともこれは重大なphpバグですか?
アップデート
genral.class.php
手動でアクセスしてもエラーは発生しません。インクルードされたファイル内からインクルードするときに特別な規則が適用されますか?
更新 2
インクルードパスを '../includes/htmlPurifierAndMarkdown.php' に設定すると、これはメインの呼び出しスクリプトへの相対パスであり、それを含むスクリプトが含まれgenral.class.php
ていますが、この新しいインクルードは1つだけに関連しているため多くの呼び出しスクリプトのうち、それは他のもののために分解されます。インクルードされたファイル内からファイルをインクルードする場合、特別な規則が適用されますか??