【问题标题】:how to create a static page in local directory from php form如何从php表单在本地目录中创建一个静态页面
【发布时间】:2021-09-01 03:54:33
【问题描述】:

我想创建一个 php 表单页面。提交时,它会在 Web 服务器的本地目录中自动创建一个带有填充表单数据的 html 静态页面。请告诉我该怎么做。

【问题讨论】:

    标签: php html web


    【解决方案1】:

    因为我们每次都很难在 textarea 中编写 html 、 meta 标签等 ....

    所以创建一个模板文件,然后使用它作为基础,最后只编辑正文和标题标签(你可以做更多),这让生活变得更轻松...

    首先,我们需要创建 file.php,它利用创建新文件和注入所有代码的所有逻辑(使用 php 方法 fopen 创建一个新文件和 file_put_contents 将所有数据放入其中)。

    其次,我们创建一个模板文件,其中所有样板文件都用完了。 (包含一些变量,如 {BODY} )。

    最后,我们通过填写表格使用 file.php 并获取所有必需的输入(获取所有输入并使用循环更改所有输入输入的模板变量)。

    文件.php

       <?php
        if ($_SERVER["REQUEST_METHOD"] === "POST") {
          if (isset($_POST['filename'])) {
            $body = $_POST['body'];
            $title = $_POST['title'];
            $swap_var = array(
              "{BODY}" => $body,
              "{TITLE}" => $title
            );
            $template = "template.php";
            if (file_exists($template)) {
              $html = file_get_contents($template);
            } else {
              die ("Unable to locate your template file");
            }
            foreach (array_keys($swap_var) as $key) {
              if (strlen($key) > 2 && trim($swap_var[$key]) != '')
        
                $html = str_replace($key, $swap_var[$key], $html);
            }
             $filename = $_POST['filename'];
              if (!file_exists($filename)) {
                fopen($filename, "w");
              }
             file_put_contents($filename , $html);
          }
        }
        ?>
        
        
        <!DOCTYPE html>
        <html>
        <head>
          <meta http-equiv="content-type" content="text/html; charset=utf-8" />
          <meta name="viewport" content="width=device-width">
          <title>Creating and adding text in File</title>
          <style type="text/css" media="all">
            input , textarea {
              width: 100% ;
            }
            body{
              padding: 10%;
            }
          </style>
        </head>
        <body>
          <form action="file.php" method="post" accept-charset="utf-8">
            <input type="text" name="filename" id="filename" placeholder="Enter Filename (with extension like .html)" />
            <br>
            <br>
            <input type="text" name="title" id="title" placeholder="title" />
            <br>
            <br>
            <textarea name="body" id="body" rows="8" placeholder="enter body"></textarea>
            <br>
            <br>
            <button type="submit">Create New html file</button>
          </form>
        </body>
        </html>
    

    template.php

    <!DOCTYPE html>
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width , initial-scale=1.0">
        <title>{TITLE}</title>
      </head>
      <body>
        {BODY}
      </body>
    </html>
    

    确保在同一目录中创建这两个文件,注意此代码将在与这两个文件相同的目录中生成所有新文件,记住您可以随时更改生成新文件的位置。

    【讨论】:

    • @Rohan Verma 这对你有帮助吗?
    • 是的,非常感谢,这对我来说非常有效,只是需要另一个帮助。如果我设置数字网页 url 并希望根据以前的自动递增,以及如何将它同时保存到两个或多个不同的文件夹中
    • @Rohan Verma 很高兴您有更多问题,尝试打开一个新主题,您可能会发现一些好东西! .顺便说一句,您可以将文件保存在任何目录或任何地方。也可以在 1 个或多个文件夹中创建重复文件!查看 PHP 文件系统文档了解更多详情!
    • 提示:使用 fopen("dir/abc.php") 您可以将文件保存在 dir 文件夹中,但请记住,如果 dir 不存在,它会出错。 file_put_contents 还可以帮助您在文件中添加内容!
    • 我试图将它保存到三个目录但创建了空文件,你能给我正确的代码吗,这将是一个很大的帮助
    【解决方案2】:

    你可以像例子一样使用php文件函数。

    $myfile = fopen("WHATEVER_THE_FILENAME_YOU_WANT.html", "w") or die("Unable to open file!");
    $data = """
    <!DOCTYPE html>
    <html>
    <head>
    <title>Page Title</title>
    </head>
    <body>
    
    ECHO YOUR FORM DATA HERE.
    
    </body>
    </html>
    """;
    fwrite($myfile, $data);
    fclose($myfile);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多