2012-03-02 34 views
34

有沒有什麼辦法可以在PHP中回顯.html文件的全部內容?如何在PHP中回顯.html文件的全部內容?

例如,我有一些sample.html文件,我想回顯那個文件名,所以應該顯示它的內容。

+4

'Include' should do。)或'readfile()'。 – Vyktor 2012-03-02 20:24:15

+0

可能重複的[包括文件的全部內容和回顯它](http://stackoverflow.com/questions/921479/include-whole-content-of-a-file-and-echo-it) – trejder 2015-01-16 13:41:17

回答

67

你應該使用readfile()

readfile("/path/to/file"); 

這將讀取文件並將其發送到一個命令的瀏覽器。這主要是因爲相同的:

echo file_get_contents("/path/to/file"); 

除了file_get_contents()可能導致腳本崩潰的大文件,而readfile()不會。

+0

有沒有什麼辦法可以首先檢查文件夾中是否存在該文件,並且只有這樣,才能執行上述命令? – 2012-03-02 20:43:54

+0

['file_exists()'](http://php.net/file_exists)可以檢查文件或目錄是否存在,['is_file()'](http://php.net/is_file)可用於檢查文件是否存在*並且是常規文件*。在你的情況下,可能應該使用'is_file()'。 – Frxstrem 2012-03-02 20:46:33

+0

奇怪,但是當我將file_get_contents改爲readfile時,它在底部添加了1191,並且我不知道該數字來自哪裏:)任何想法? – 2012-03-02 20:48:42

9

只需使用:

<?php 
    include("/path/to/file.html"); 
?> 

這將呼應它。這也有文件在執行任意PHP的利益,

如果你需要做的任何內容,使用的file_get_contents(),

例如

<?php 
    $pagecontents = file_get_contents("/path/to/file.html"); 

    echo str_replace("Banana", "Pineapple", $pagecontents); 

?> 

這不會在該文件中執行代碼,因此如果您希望能夠正常工作,請小心。

我通常使用:

include($_SERVER['DOCUMENT_ROOT']."/path/to/file/as/in/url.html"); 

的話,我可以移動文件,而不會破壞包括。

+0

我想你錯過了實際的代碼,Rich;) – joakimdahlstrom 2012-03-02 20:26:09

+0

感謝你的快速回應:)你能給我寫一個例子嗎?我編輯了我的問題。謝謝。附:你之後沒有任何代碼:「Just use:」? – 2012-03-02 20:26:20

+1

啊,忘了妥帖吧! – 2012-03-02 20:26:54

8

如果你想確保HTML文件不包含任何PHP代碼,也不會被作爲PHP執行,不使用includerequire,簡單做:

echo file_get_contents("/path/to/file.html"); 
+0

謝謝。有用。但是,如果該文件包含或者以某種方式引用了它所需的其他文件,則這些文件將不起作用,因爲它們的路徑現在有所不同。我們仍然在我們的主要檔案。任何方式來解決這個問題? – 2017-07-14 14:55:57