这个PHP代码可以缩短吗?

时间:2017-12-29 05:41:06

标签: php text-files

我有这个原始且相当长的代码,使用户能够创建/打开(如果已经存在)文本文件。 它对我有用,但我想知道它是否可以更短。

它的想法就像http://etherpad.org/网站,人们可以在没有注册的情况下创建/保存/打开文本文件,人们应该使用唯一的文件名来访问他们的文件。

index.php文件

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">
bkLib.onDomLoaded(nicEditors.allTextAreas);
</script>


<?php

if (isset($_GET['filename']))
    {
    $ourfile = trim($_GET['filename']) . ".html";
    }

if (!isset($_POST['filename']))
    { ?>

<form action="index.php" METHOD="POST">

<input type=text name="filename" required>

<input type=submit value="open/create">
</form>

<?php
    }
  else
    {
    $ourfile = trim($_POST['filename']) . ".html";
    }

if (!empty($ourfile) && file_exists($ourfile))
    {
    $file_handle = fopen($ourfile, "r");
    $file_content = fread($file_handle, filesize($ourfile));
    fclose($file_handle);
?>
<form action="save.php" METHOD="POST">

<input type=hidden name="filename" value = "<?php
    echo $ourfile; ?>">
<textarea rows=24 cols=80 maxlength=1000 name=notes>
<?php
    echo $file_content; ?>
</textarea>
<input type=submit value="save">
</form>
<?php
    }
  else
    {
    if (!empty($ourfile))
        {
        $file_handle = fopen(trim($ourfile) , "w");
        fwrite($file_handle, "Start editing " . $ourfile);
        fclose($file_handle);
        $ourfile = str_replace(".html", "", $ourfile);
        header("location:index.php?filename=$ourfile");
        }
    }

?>

save.php文件

“\ xEF \ xBB \ xBF”的前一部分是维护utf语言(阿拉伯语)。

<?php


    $ourfile = $_POST['filename'];

$file_handle = fopen($ourfile,"w");
     fwrite($file_handle,"\xEF\xBB\xBF".$_POST['notes']);
    fclose($file_handle);

header("location:$ourfile");

?>

提前谢谢。

1 个答案:

答案 0 :(得分:0)

虽然我理解这个问题是 off-topic (代码审查而不是客观问题),但无论如何我都浏览了这段代码。

<?php
    if (isset($_GET['filename'])) {
        $ourfile = trim($_GET['filename']) . ".html";
    }
    if (!isset($_POST['filename'])) { ?>
    <form action="index.php" method="post"><input type="text" name="filename" required>
        <input type="submit" value="open/create">
    </form>
<?php } else { $ourfile = trim($_POST['filename']) . ".html"; }
    if (file_exists($ourfile)) {
        $file_handle = fopen($ourfile, "r");
        $file_content = fread($file_handle, filesize($ourfile));
        fclose($file_handle); ?>
    <form action="save.php" method="post">
        <input type="hidden" name="filename" value="<?php echo $ourfile; ?>">
        <textarea rows=24 cols=80 maxlength=1000 name="notes"><?php echo $file_content; ?></textarea>
        <input type="submit" value="save">
    </form>
<?php } else {
    if (!empty($ourfile)) {
        $file_handle = fopen(trim($ourfile) , "w");
        fwrite($file_handle, "Start editing " . $ourfile);
        fclose($file_handle);
        $ourfile = str_replace(".html", "", $ourfile);
        header("Location: index.php?filename=" . $ourfile);
    }
} ?>

在大多数编程语言中,所有空格(空格,TAB,换行符)都是完全随意的。也就是说,您可以根据需要使用尽可能多的空白空间,并且不会影响编译或执行。我从你的代码中提取了一些不必要的东西,并对HTML进行了一些小的调整(没有引号应该有,等等。)

只需将相同的技术应用于您的其他文件即可。摆脱空白线条,凹凸不平。保持缩进一致,否则你的代码将变得一团糟,难以阅读。