2012-10-23 18 views
2

有一个来自不同域的网页,其中包含一个在我的服务器中托管和生成的脚本。说该网页是http://www.theirdomain.com/site其标记是这样的:我如何知道在PHP中加载脚本的页面的URL?

<html> 
    <head> 
     <script src="http://www.mydomain.com/script.php"></script> 
    </head> 
    <body> 
     ... 
    </body> 
</html> 

script.php页面并创建和JavaScript的内容,但我想知道这是那个叫script.php的URL(即http://www.theirdomain.com/site)。

如何在PHP中获取该信息?

+0

我从来没有见过通过script标签包含的php文件。你确定这有效吗?该PHP文件是否返回JavaScript? –

+0

@Asad它可能会生成JavaScript,就像'.php'文件可以是生成的图像一样。 – Stijn

+0

是的,我刚刚意识到。 –

回答

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. 
+1

http://php.net/manual/en/function.file-put-contents.php – Jelmer

3

当你想知道那个叫你的文件“的script.php”页面的网址,你应该看看$ _SERVER变量。

在这个变量中,你会发现一些有用的头文件的脚本被调用的地方,试着测试你从$ _SERVER ['REQUEST_URL']和$ _SERVER ['HTTP_REFERER']获得的值。更多选项可以在这里找到:http://php.net/manual/en/reserved.variables.server.php

你可以将这些变量中的数据和时间一起存储到数据库中,以便稍后能够输出使用统计信息。

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'], '/'); 
    } 
}