2012-10-23 51 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'], '/'); 
    } 
}