正如标题所暗示的,我需要一种不使用 PHP 在网站上显示文件的方法。该文件不能直接访问,它只是显示一个空白页。所以它需要以明文形式阅读和打印。我试图读取的文件是一个 PHP 文件。HTML 将与要读取的文件位于同一服务器上。
3 回答
要使用 PHP 显示任何文件的内容,您可以这样做:
echo htmlspecialchars(file_get_contents($filename));
该变量$filename
是本地文件系统路径(不是 URL),因此文件是否可以通过 Web 访问并不重要。唯一的限制是 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');
如果您希望它的格式很好,请参阅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 读取文件。不过,您可以使用 iframe 呈现另一个文件的内容。
<iframe src="myOtherFile.txt"></iframe>
您不能单独使用 HTML 来“读取”和处理该文件。即使使用 javascript(这是一种编程语言,但无法访问其他文件),您也无法做到这一点。
您可以按照此处其他答案的建议,使用 javascript 来调度 ajax 调用,让您的文件在服务器上读取(例如,通过 PHP 脚本),并将值返回到您的客户端(并使用 javascript 处理结果)。