phpcp/view.php

87 lines
3.1 KiB
PHP

<?php
require "config.php";
if (!isset($_GET['path'])) {
header("Location: ./404.php");
exit;
} elseif (($path = trim($_GET['path'])) == "") {
header("Location: ./404.php");
exit;
} elseif (!is_file($path)) {
header("Location: ./404.php");
exit;
} elseif (!is_readable($path)) {
xhtml_head("查看文件");
echo "<div class=\"like\">\n";
echo "<a href=\"./index.php?path=" . urlencode(dirname($path)) . "\"]>返回目录</a>错误提示\n";
echo "</div>\n";
echo "<div class=\"love\">\n";
echo "此文件您没有读取权限!";
echo "</div>\n";
xhtml_footer();
} else {
xhtml_head("查看文件");
echo "<div class=\"like\">\n";
echo "<a href=\"./index.php?path=" . urlencode(dirname($path)) . "\"]>返回目录</a>选择编码\n";
echo "</div>\n";
echo "<div class=\"love\">";
echo "<form action=\"\" method=\"GET\">\n";
echo "<select name=\"charset\">\n";
if (!function_exists("mb_convert_encoding")) {
echo "<option>缺少模块</option>\n";
} else {
$sencode = mb_list_encodings();
usort($sencode, "___sortcmp");
foreach ($sencode as $encode) {
if ($encode == "pass") {
continue;
}
if (function_exists("mb_encoding_aliases")) {
$alias = mb_encoding_aliases($encode);
echo "\n<optgroup label=\"$encode\">\n";
echo "<option value=\"$encode\">$encode</option>\n";
if (is_array($alias)) if (count($alias) >= 1) {
usort($alias, "___sortcmp");
foreach ($alias as $encodealias) {
if ($encodealias == $encode) {
continue;
}
echo "<option value=\"$encode\">$encodealias</option>\n";
}
}
echo "</optgroup>\n";
} else {
echo "<option value=\"$encode\">$encode</option>\n";
}
}
}
echo "</select>\n";
echo "<input type=\"hidden\" name=\"path\" value=\"$path\" />";
echo "<input type=\"submit\" value=\"设置编码\" />\n";
echo "</form>\n";
echo "</div>\n";
echo "<div class=\"like\">爱特文件内容浏览</div>\n";
if (filesize($path) > (2 * 1024 * 1024)) {
echo "<div class=\"love\">\n";
echo "文件过大,请下载后查看!\n";
echo "</div>\n";
} else {
echo "<div class=\"love\">\n";
if (!($data = file_get_contents($path))) {
echo "读取文件时发生了错误!\n";
} else {
echo "<pre>";
if (!isset($_GET['charset'])) {
echo nl2br(___codepre(___convert($data, "UTF-8")));
} elseif (($charset = trim($_GET['charset'])) == "") {
echo nl2br(___codepre(___convert($data, "UTF-8")));
} else {
echo nl2br(___codepre(___convert($data, "UTF-8", $charset)));
}
echo "<pre>\n";
}
echo "</div>";
}
xhtml_footer();
}
?>