1

我有example1.phpexample2.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']

4

2 回答 2

1

如果您不想使用任何 $_SERVER[''] 类型来获取文件名您可以使用

pathinfo(__FILE__, PATHINFO_BASENAME)

只是得到你想要的文件名

于 2013-04-02T00:30:09.980 回答
1

(警告:这个技巧可能无法扩展,但在这种情况下会起作用。)

使用get_included_files()返回的元素 0 。那将是启动链的原始文件

在 example3.php 中:

$gif = get_included_files();

那么你可以做

<link rel="canonical" href="http://website.com/<?php echo basename($gif[0]); ?>">

于 2013-04-02T01:09:31.137 回答