好的,所以我已经搜索了足够长的时间,最后在这里发布这个。果然,它已经被问过了很多次......
我拥有的是一个文件,其中包含另一个文件。这里没有魔力。麻烦的是,包含的文件然后包括另一个文件,其中......包括另一个...是的,痛苦。实际上它的工作非常好,除了我现在想要读取最后一个包含文件中原始文件的URL。
所以我想在原始文件中,file_1.php我只是说
$var_foo = dirname(__FILE__);
或
$var_foo = $_SERVER['SCRIPT_NAME'];
然后在第一个include,file_2.php中读取该值,并将其传递给
$var_foo_2 = $var_foo;
然后在file_3.php
$var_foo_3 = $var_foo_2
等,直到我到达最终文件file_4.php,在那里我想知道原始文件的URL的确切值。在第一级传递它可以正常工作,但随后它会在某个地方丢失。尝试在file_1中进行GLOBAL - 无济于事。
由于file_3和file_4都必须执行才能生成数据,因此设置断点a la echo / exit来欺骗当前值(如果有的话)是没有选择的。我可以没有那个特别的价值,但我只想拥有它 - 为了它的乐趣......任何想法如何实现这一目标?
答案 0 :(得分:0)
您的示例使用文件系统路径,而不是“URL”;
我假设父文件的文件路径是您真正想要的。
您不需要在每个包含的页面上“传递”变量。它将自动可用于新页面上的代码。
(如果不是,你可能不在合适的范围内:例如,如果你在一个班级或职能范围内,你需要故意传递它或使用其他方法 - global
,也许,甚至将文件名定义为常量而不是变量。)
主脚本
$parent_filename = __FILE__;
// alternatively
// define( 'PARENT_FILENAME',__FILE__ );
include "other-file.php";
其他-file.php 强>
include "other-dir/somefile.php";
其他-DIR / somefile.php 强>
print $parent_filename;
// alternatively
// print PARENT_FILENAME;
/* prints something like:
/path/to/main.php
*/
答案 1 :(得分:0)
如前所述,问题已经解决了:
在第一个include之前设置变量 将变量添加到查询字符串
感谢大家的意见。赞赏。