1

这是我想要实现的流程:

  1. 我在服务器上有一组模板 .php 文件。
  2. 网站的访问者选择一些选项
  3. 选项作为代码片段添加到模板文件中
  4. 访客下载自定义文件(.zip 应包含默认模板文件(如果未自定义)和自定义文件)
  5. 原始文件对下一位访问者保持不变

流程类似于bootstrap 自定义,唯一的区别是在 bootstrap 访问者正在编辑 .less 文件,而我的访问者将编辑 .php 文件

如果您能指出如何执行步骤 3,4 和 5 的大致方向,我将不胜感激,请记住用户输入将使用 javascript 存储在对象和数组中。

我的php知识非常初级,所以我不知道从哪里开始。

如果您需要任何澄清,请随时询问。

谢谢!

4

4 回答 4

1

如果用户只修改配置选项,那么最好的方法似乎是使用 JSON,因为它很容易分别使用$.parseJSON(jQuery) 和json_decode()&使用 JS 和 PHP 进行编码/解码json_encode()

您将提供一个表单,然后将这些用户输入转换为 JSON 格式并将其存储在一个.json文件中,然后可以将其压缩并作为下载发送给您的用户。

这也将允许用户上传他们的 zip 文件并将表单输入默认为他们的原始选项。

那么让我们来看看引导程序是如何做到的。

  1. 要自定义引导文件的页面,您将使用类似的表单执行相同的操作。
  2. 发布表单后,获取表单输入数组并验证它们是否存在恶意输入,纠正数字等数据类型并删除任何不应该存在的表单输入。
  3. 将输入转换为 JSON,无需验证,这很简单,因为json_encode($_POST).
  4. 将其写入 JSON 文件并允许用户下载它(如果需要,将其压缩)。

在您的情况下,您有多个 PHP 文件,这似乎有点不对劲,您不应该使用 PHP 文件来保存这种可变配置数据,JSON 似乎更适合。

看看这个 SO 问题:配置文件的最佳文件格式是什么?

提到了三种方法,PHP 的方式、JSON 和 XML。任你选择,但我敢打赌,对你来说最简单的是 JSON。

如果您以前没有使用过 JSON,请创建一个新的 PHP 脚本并尝试使用多维数组的函数并尝试一下。

JSON 的 PHP 文档

于 2013-10-29T17:34:45.600 回答
0

如果您使用 JavaScript 来存储用户选择等,我建议您实际上不要将 php 用于您描述的任何功能。所以这样做:

  1. 将模板存储为带有分隔部分的静态文本文件,以插入用户选项。使划分的部分不同于 php 语法,例如@@@Your option here@@@.
  2. 这很简单。
  3. 使用 AJAX 获取相关模板并在 JavaScript 中对划定的部分进行简单的字符串替换。
  4. 将生成的 php 代码放入<textarea>使用 JavaScript 中,以便他们复制并粘贴到记事本或其他东西中
  5. 原始文件是静态的,代码是客户端的,所以这很好
于 2013-10-10T15:10:02.217 回答
0

所以我知道您想发布为用户定制的 php 脚本。

考虑使用 php 文件来满足所有可能的用户输入。然后将用户选项捕获到结构可预测且易于创建的配置文件中。

例如

# config.inc.php
# Created by script that captures user options
$config['allow_shipping'] = true;

然后在php脚本中

# file1.php
include config.inc.php
if ($config[$config['allow_shipping'] === true) {
  some_php_code;
}

你的步骤将是

  1. 我在服务器上有一组 .php 脚本文件。
  2. 网站的访问者选择一些选项
  3. 选项被发送到创建配置文件的服务器脚本。
  4. 访客下载自定义文件(.zip 应包含脚本文件和配置文件)
  5. 原始文件对下一个访问者保持不变(减去配置文件)

一些指导您的帖子 如何为网站创建安装程序。PHP mysqlPHP 安装程序脚本

于 2013-10-10T17:48:51.030 回答
0

我会考虑制作默认代码片段,并将每个“选项”链接到各种所需的片段。这样,每次选择一个选项时,它都会使用正确的代码。要继续 @Crafter 的示例,您可以使用以下代码片段

  • if (
  • $config[
  • ]
  • ===
  • ) {
  • }

当我在 Java 中尝试类似的东西时,我曾经做过一次,尽管它似乎比它应该做的工作更多,但一旦你获得一个相当大的代码片段“数据库”,它最终会非常有用。

希望它有用吗?

-彼得

于 2013-10-30T10:45:21.503 回答