来自不同域的网页包含在我的服务器中托管和生成的脚本。假设该页面位于http://www.theirdomain.com/site
,其标记如下:
<html>
<head>
<script src="http://www.mydomain.com/script.php"></script>
</head>
<body>
...
</body>
</html>
script.php
页面确实创建了JavaScript内容,但我想知道哪个是调用script.php
的网址(即http://www.theirdomain.com/site
)。
如何在PHP中获取该信息?
答案 0 :(得分:6)
$_SERVER['HTTP_REFERER']不是100%可靠。
答案 1 :(得分:4)
在您的script.php中记录引荐来源,以查看它的来源。 像:
if(!empty($_SERVER['HTTP_REFERER'])) {
$log = fopen('script_access.log', 'a');
fwrite($log, 'The script has been accessed from ' . $_SERVER['HTTP_REFERER'] . PHP_EOL);
fclose($log);
}
// Rest of your script here.
答案 2 :(得分:3)
如果您想知道调用文件'script.php'的页面的网址,您应该查看$ _SERVER变量。
在该变量中,您将找到调用脚本的一些有用标题,例如,尝试测试从$ _SERVER ['REQUEST_URL']和$ _SERVER ['HTTP_REFERER']获得的值。可以在此处找到更多选项:http://php.net/manual/en/reserved.variables.server.php
例如,您可以将这些变量中的数据与时间一起存储到数据库中,以便以后能够输出使用统计信息。
答案 3 :(得分:1)
您可以通过$ _SERVER获取所有这些信息,这是一个包含标题,路径和脚本位置等信息的数组。 欲了解更多信息,请阅读。 http://php.net/manual/en/reserved.variables.server.php
<?php
function get_path_info()
{
if( ! array_key_exists('PATH_INFO', $_SERVER) )
{
$pos = strpos($_SERVER['REQUEST_URI'], $_SERVER['QUERY_STRING']);
$asd = substr($_SERVER['REQUEST_URI'], 0, $pos - 2);
$asd = substr($asd, strlen($_SERVER['SCRIPT_NAME']) + 1);
return $asd;
}
else
{
return trim($_SERVER['PATH_INFO'], '/');
}
}