我有example1.php
和example2.php
,其中包含example3.php
。在example3.php
我有:
<link rel="canonical" href="http://website.com/<?php echo basename(__FILE__); ?>">
我想要的是example1.php
中的example2.php
/ href
依赖于文件,包括 example3.php
。问题是当然__FILE__
输出example3.php
。是否可以获取包含文件的文件名,而不是包含文件的文件名?
请不要建议使用易受攻击的XSS SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
。
答案 0 :(得分:1)
如果您不想使用任何$ _SERVER ['']类型来获取文件名 你可以使用
pathinfo(__FILE__, PATHINFO_BASENAME)
只获取您想要的文件名
答案 1 :(得分:1)
(警告:此技巧可能无法扩展,但在这种情况下可以正常工作。)
使用get_included_files()返回的元素0。这将是启动链的原始文件
在example3.php中:
$gif = get_included_files();
然后你可以做
<link rel="canonical" href="http://website.com/<?php echo basename($gif[0]); ?>">