纯PHP可快速搭建轻量问卷系统,含配置驱动表单、安全提交处理与多级数据存储(JSON/MySQL),支持跳转逻辑、XSS过滤、敏感加密及原生统计导出。

用PHP快速搭建可收集数据的问卷系统
不需要复杂框架,纯PHP就能实现一个轻量级问卷调查网站。核心是表单生成、提交处理和结果统计三部分,重点在于结构清晰、数据安全、便于扩展。
自定义表单:用配置驱动而非硬编码
把问卷题目和选项写在数组或JSON配置里,避免每次改题目都动PHP代码。例如:
$form_config = [ ['type' => 'text', 'label' => '姓名', 'required' => true], ['type' => 'radio', 'label' => '满意度', 'options' => ['非常满意','满意','一般','不满意']], ['type' => 'textarea', 'label' => '建议'] ];
- 前端用循环渲染表单,自动加name属性和验证规则
- 后端接收时按配置校验格式(如邮箱、必填项)、过滤XSS(用htmlspecialchars或filter_var)
- 支持“跳转逻辑”可在配置中加condition字段,提交时服务端判断是否跳过后续问题
数据存储:从文件到数据库的平滑过渡
小规模问卷(日提交<100条)可用JSON文件存档,方便备份和迁移;访问量上升后切换到MySQL只需改几行PDO操作。
- 文件方式:每份答卷存为独立JSON文件,命名含时间戳,避免并发写入冲突
- 数据库方式:建一张answers表,字段包括id、submit_time、ip_hash(匿名统计用)、json_data(存原始答案,兼容题型变化)
- 敏感信息如手机号、邮箱,入库前加密(password_hash不适用,可用openssl_encrypt)
数据统计分析:不用第三方库也能做基础洞察
直接读取数据库或JSON文件,用PHP原生函数做聚合计算,输出HTML表格或简单图表(用Chart.js前端渲染更轻量)。
立即学习“PHP免费学习笔记(深入)”;
- 计数类:array_count_values() 统计单选/多选选项出现次数
- 分组类:用date('Y-m')截取提交时间做月度趋势,配合foreach累加
- 关键词提取:对文本题用mb_split('/[\s,。!?;]+/', $text)分词,再用array_filter去停用词
- 导出功能:header头设Content-Type为text/csv,用fputcsv输出即可生成Excel兼容CSV



















