2010-10-06 64 views
1

我在同一臺服務器上有兩個doamins(www.domain1.com,www.domain2.com)。如何從其他域包含一個PHP文件

我有一個index1.php在拳頭服務器。 現在我需要包括文件index2.php駐留在域2,

怎麼可能使用PHP代碼(包括需要....)

回答

3

如果他們是同一臺服務器,你可以只包含文件與絕對文件路徑。很難確切地勸不知道你確切的文件路徑,但仍然代碼:

include('/path/to/your/file.php'); 
+0

你的意思是include('domain2.com/file.php')? – 2010-10-06 19:01:34

+0

@Linto P D:不,它應該是服務器機器上的內部路徑。例如。 '/ sites/domain1/html/file.php'和'/ sites/domain2/html/file.php'。 – Alec 2010-10-06 19:06:52

+0

你可以通過HTTP包含,但這是完全不必要的帶寬,就好像這兩個文件在同一個服務器上(並且用戶可以訪問這兩個文件),那麼它們可以包含在適當的文件路徑中,而不是'http:// WWW ...' – chigley 2010-10-06 19:12:28

0

如果兩個PHP用戶都可以訪問對方空間(不太可能),你會包括像往常一樣的文件,includerequire

如果沒有,你可以交換的東西,如cURL數據,然後用eval執行它(注意安全漏洞 !!!)。如果您只需要傳送數據(如內容),則可使用SimpleXML代替XML。

0

這通常是不可能的,你應該考慮不要這樣做。如果您控制兩個域並且需要它們之間的共享代碼,請考慮對共享代碼進行版本控制(例如顛覆),然後檢出它們之間的副本。否則,如果您不控制其他域,那麼您的運氣不好。

使用cURL也無濟於事,因爲它會在文件處理後返回。 PHP的include()將允許在應用程序流程中插入和執行代碼,然而,使用cURL(或fopen(),file_get_contents()等)顯然只會返回任何腳本輸出,因爲在您的函數之前它將由其他服務器先前處理選擇返回。

4

在另一臺服務器上不可能包含php文件,因爲這會是一個安全漏洞(其他站點設置變量,然後包括您的文件)。但是,您可以使用file_get_contents來獲取php的輸出文件在另一臺服務器上

-1

嘗試創建第三個文件使用PHP的所有權限授予複製/粘貼, 您可以開始將.php替換爲.txt然後讀取第二個文件的所有內容並將其轉換爲字符串。

從.PHP轉換頭文件改爲.txt並將其轉換成字符串以及..

最終形成以適當的地方都第一檔和第二檔第3檔和其重命名爲.PHP

重命名所有文件修改爲.php

你完成!

1
  1. 設置的php.ini(allow_url_include =開)中,然後重新啓動Apache(服務器1)
  2. 從somefile重命名外部文件。php到somefile(服務器2)
  3. 在php文件中包含如下文件: 包括「http://otherdomain.com/somefile」; (server 1)
相關問題