2013-01-21 30 views
3

正如標題所暗示的,我需要一種方法來在不使用PHP的情況下在網站上顯示文件。該文件不能直接訪問,它只是顯示一個空白頁面。所以需要以明文形式閱讀和打印。我正在嘗試閱讀的文件是一個PHP文件。 HTML將與要讀取的文件在同一臺服務器上。只使用HTML讀取並顯示服務器端文件的內容

+0

「不使用PHP」是什麼意思? – Jon

+0

使用[$ .ajax](http://api.jquery.com/jQuery.ajax/)。 – Mooseman

+0

是的,這就是我想要做的。對不起,如果我沒有解釋得好。 – Jshaps

回答

2

顯示任何文件與PHP的內容,你可以這樣做:

echo htmlspecialchars(file_get_contents($filename)); 

變量$filename是本地文件系統路徑(而不是URL),因此,如果該文件是可訪問的也沒關係通過網絡。唯一的限制是PHP進程需要具有對文件的讀取權限。

請注意htmlspecialchars應該告訴你的頁面的文檔類型和編碼是使用它的第二個和第三個參數。例如:

header('Content-Type: text/html; charset=utf-8'); // UTF-8 
echo '<!DOCTYPE html>'; // HTML 5 
echo htmlspecialchars(file_get_contents($filename), ENT_HTML5, 'UTF-8'); 
+0

這不是用於PHP文件嗎?重申一下,我必須爲此專門使用HTML。 – Jshaps

+0

@Jershaps:除非文件可以從網上訪問(你不這麼認爲),否則這是不可能的。 – Jon

+0

啊,所以不可能? HTML不能讀取serverside文件? – Jshaps

1

如果你想讓它很好地格式化,見 highlight_file()

print highlight_file('path/to/your/file.php'); 

(我也寫了function,這是否更好一點)

要在純html中執行此操作,您需要使用javascript並啓動ajax請求來獲取該文件。但是您仍然需要將您的腳本重命名爲.phps.txt或者PHP不會嘗試解析的內容。

示例使用jQuery:

<html> 
<head> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script> 
    jQuery(document).ready(function($){ 
    $.ajax({ 
     url : "file.phps", 
     dataType: "text", 
     success : function (data) { 
      $('<pre />').text(data).appendTo('body'); 
     } 
    }); 
    }); 
</script> 
</head>  
<body>  
</body> 

file.phps必須存在服務器上)

+0

這不是用於PHP文件嗎?重申一下,我必須爲此專門使用HTML。 – Jshaps

+0

這是Javascript,而不是PHP。 – duskwuff

+0

那麼,OP說*我必須使用專門的HTML這個*。是的,這不是完全的HTML,但我在這裏看不到其他選擇 –

0

你不瞭解清楚HTML的目的 - 這是不是一種編程語言,它是一種標記語言,意味着佈局。

HTML也沒有「服務器端」。一切都是客戶端。沒有處理你的代碼,只是渲染你的頁面(通過你的客戶端的瀏覽器)。

也就是說,您無法使用HTML讀取文件。不過,您可以使用iframe來呈現其他文件的內容。

<iframe src="myOtherFile.txt"></iframe> 

您無法「讀取」它並單獨使用HTML來處理該文件。即使使用javascript(這是一種編程語言,但無法訪問其他文件),您也無法做到這一點。

您可以像在這裏的其他答案中所建議的一樣,使用javascript來分派ajax調用,讓您的文件在服務器上讀取(例如通過PHP腳本),並將值返回給客戶端(並處理結果與JavaScript)。

相關問題