0

好的,所以我已经搜索了足够长的时间,终于在这里发布了这个。果然,它已经被问过无数次了……

我所拥有的是一个文件,其中包括另一个文件。这里没有魔法。问题是,包含的文件然后包含另一个文件,其中...包含另一个...是的,很痛苦。实际上,这一切都很好,除了我现在想在最后一个包含的文件中读取原始文件的 URL。

所以我想在原始文件中,file_1.php 我只是说

$var_foo = dirname(__FILE__);

或者

$var_foo = $_SERVER['SCRIPT_NAME'];

然后在第一个包含文件 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 必须同时执行才能生成数据,因此无法通过回显/退出设置断点来欺骗当前值(如果有)。我可以在没有那种特殊价值的情况下生活,但我只是想拥有它——为了它的乐趣......有什么想法可以做到这一点吗?

4

2 回答 2

0

Your examples use filesystem paths, not "URLs";
I am assuming the filepath of the parent file is what you actually want.

You don't need to "pass" the variable on each included page. It will automatically be available to the code on the new page.

(If it is not, you may not be in the right scope: e.g., if you're inside a class or function, you'll need to pass it deliberately or use some other method - global, maybe, or even define the filename as a constant instead of a variable.)

main script

$parent_filename = __FILE__;

// alternatively
// define( 'PARENT_FILENAME',__FILE__ );

include "other-file.php";

other-file.php

include "other-dir/somefile.php";

other-dir/somefile.php

print $parent_filename;

// alternatively
// print PARENT_FILENAME;

/* prints something like:

/path/to/main.php

*/
于 2013-07-26T05:52:51.530 回答
0

如前所述,问题已解决如下:

在第一个包含之前设置变量将变量添加到查询字符串

感谢大家的投入,不胜感激。

于 2013-07-28T03:34:56.963 回答