2010-08-23 135 views
1

我需要包含一個PHP文件,我只能使用完整的HTTP地址訪問。我很困惑這個話題,我聽說這是一個不好的做法。我該如何解決這個問題?包含/需要HTTP地址

+0

該文件有什麼作用?它是否提供源代碼?如果您需要其他建議,則需要添加更多詳細信息。 – 2010-08-23 15:48:50

+0

這是一個包含在我的許多其他頁面中的文件。它包含各種腳本,HTML和一些分析。我不能把它放在所有這些頁面中,因爲如果我需要編輯一些較小的內容,我將不得不瀏覽所有這些頁面。 – Benny 2010-08-23 15:50:41

+0

在這個鏈接中,你可以看到你可以通過include來做到這一點Example#3 include()通過HTTP http://php.net/manual/en/function.include.php – 2010-08-23 15:51:56

回答

1

是的,除非您確實瞭解源代碼,否則不推薦使用HTTP。 如果你只是想獲得它的內容,不執行PHP代碼,你可以使用:

Fot的這一點,PHP設置了allow_url_fopen必須開啓。 使用捲曲的其他選項(從PHP手冊無恥地採取):

<?php 
// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

// grab URL and pass it to the browser 
curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 
?> 

你應該讓它通過ヶ輛()如果nescessary。

如果你是在同一臺服務器上,你可以使用:

<?php 
readfile('footer.html'); 
?> 
0

這是非常不好的做法。爲什麼不包含該文件的本地副本,並使用SSH將其與遠程服務器上的副本同步。

+0

這對我的需求來說太複雜了。 – Benny 2010-08-23 16:12:06

+0

只會複製一次(或者當它改變時)太複雜了嗎?這個文件經常改變嗎? – 2010-08-23 16:42:37

2

從手動:http://php.net/manual/en/function.include.php

也看過附着

如果「URL fopen wrappers」在PHP(它們在默認配置)啓用安全警告,可以指定文件包括使用URL(通過HTTP或其他支持的包裝 - 請參閱協議列表支持的協議/包裝)而不是本地路徑名。如果目標服務器將目標文件解釋爲PHP代碼,則可以使用與HTTP GET一起使用的URL請求字符串將變量傳遞到包含的文件。這與嚴格意義上講並不是一樣的,包括文件並讓它繼承父文件的變量作用域;該腳本實際上正在遠程服務器上運行,結果被包含在本地腳本中。