タイトルが示すように、PHP を使用せずに Web サイトにファイルを表示する方法が必要です。ファイルに直接アクセスすることはできません。空白のページが表示されるだけです。したがって、平文で読み取って印刷する必要があります。読み込もうとしているファイルは PHP ファイルです。HTML は、読み取るファイルと同じサーバー上にあります。
3 に答える
PHP で任意のファイルの内容を表示するには、次のようにします。
echo htmlspecialchars(file_get_contents($filename));
変数$filename
はローカル ファイル システム パス (URL ではない) であるため、Web 経由でファイルにアクセスできるかどうかは問題ではありません。唯一の制限は、PHP プロセスがファイルへの読み取りアクセス権を持っている必要があることです。
htmlspecialchars
2 番目と 3 番目の引数を使用して、ページの doctype とエンコーディングを指定する必要があることに注意してください。例えば:
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');
うまくフォーマットしたい場合は、次を参照してくださいhighlight_file()
。
print highlight_file('path/to/your/file.php');
(これをもう少しうまく行う関数も書きました)
プレーンな 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
サーバー上に存在する必要があります)
あなたは明らかに HTML の目的を理解していません。HTML はプログラミング言語ではなく、レイアウト用のマークアップ言語です。
HTMLには「サーバーサイド」もありません。すべてがクライアント側です。コードの処理はなく、(クライアントのブラウザによる) ページのレンダリングのみです。
つまり、HTML を使用してファイルを読み取ることはできません。ただし、iframe を使用して別のファイルのコンテンツをレンダリングすることはできます。
<iframe src="myOtherFile.txt"></iframe>
HTMLだけを使用してそのファイルを「読み取って」処理することはできません。これは、javascript (プログラミング言語ですが、他のファイルにはアクセスできません) でもできません。
ここで他の回答で示唆されているように、javascript を使用して ajax 呼び出しをディスパッチし、サーバーでファイルを読み取り (たとえば、PHP スクリプトによって)、クライアント側に値を返す (そして javascript で結果を処理する) ことができます。 )。