2012-10-07 35 views
0

我有以下代碼:的file_get_contents獲取PHP文件的部分

<?php 
$path=$_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI]; 
$test=file_get_contents('http://www.domain.com/test.php?i='.$path); 
echo $test; 
?> 

我想獲取並插入依賴於$ PATH變量的test.php文件的特定部分(網址從中test.php文件被訪問。)

我該怎麼做?我在正確的軌道上嗎?我不知道如何設置我的text.php文件,以便該函數能夠正確顯示所訪問網頁的正確部分。我該怎麼做呢?或者,還有更好的方法? (test.php不是本地文件)

謝謝!

+4

讓我得到這個權利:你想從另一個網站獲取一些PHP代碼並將其作爲PHP代碼在你的代碼中運行?你有什麼想法是多少安全風險?另外,如果代碼不會改變,那麼每次加載頁面時都會通過網絡下載它,這也是帶寬的巨大浪費。再加上它會很慢。非常非常慢。 – Spudley

+0

我想要做的是獲取PHP文件的內容,並將其中的一部分放在正在訪問它的網站上。所以上面的代碼將在許多不同的網站上,而test.php文件將在domain.com上。根據訪問它的網站的URL,我希望它獲取test.php文件的不同部分(因此包含$ path)。 test.php文件的內容會定期更改,這就是爲什麼我想這樣做。任何人都可以解釋如何或者如果有更好的方法嗎?謝謝 –

+0

只需要清楚:通過URL訪問它將運行遠程服務器上的代碼並向您發送程序的輸出。你想要的還是你想下載實際的代碼?從問題(或來自您的評論)中不完全清楚你想要的是哪一個。但是如果你想下載代碼,我的建議是不要這樣做。 – Spudley

回答

0

在我看來,你正試圖在test.php上顯示動態信息(如HTML或文本),無論哪個腳本訪問它。從那裏,你想從test.php中獲取信息,並通過提取源代碼並回顯給index.php來傳遞它呢?糾正我,如果我錯了。

這是可以使用$ _GET變量實現的。將網址的末尾加上?i=,您已經朝着正確的方向前進。

像這樣的事情應該可以幫助您大致達到你想要的東西: (test.php的)

if (isset($_GET['i]') { 
    switch ($_GET['i']) { 
     case 'http://www.domain2.com/index.php': 
      echo 'You\'re on domain2.com'; 
      break; 
     case 'http://www.domain3.com/index.php': 
      echo 'You\'re on domain3.com'; 
      break; 
    } 
} 

index.php文件應該可以正常工作是怎麼回事,除非存儲在變量中的數據有關的路徑您當前所在的頁面不正確。

+0

我其實想要在domain2.com,domain3.com等頁面上顯示動態信息。所有的信息將被放置在test.php文件中,但它將被選擇性地提取以顯示文件的預定義部分,取決於哪個站點訪問它。因此,在domain2.com上,不同信息將被提取並插入到源代碼中,而不是在domain3.com上提取和插入的信息等。這將如何完成? –

+0

我發佈的解決方案將實現您所需的解決方案。把它放在test.php裏面。 在你的index.php文件中,file_get_contents()將test.php中的html保存到一個變量中,然後你正在迴應該變量(本質上,你顯示的是test.php(它是基於訪問它的網頁動態生成的) )在index.php裏面)。您正在index.php上動態顯示來自test.php的動態信息。 – anditpainsme

+0

大衛,幸運嗎? – anditpainsme

相關問題