我正在开发一个项目,用户可以在其中填写他/她的个人资料。因此,在存储用户的社交媒体链接时,我有一个 json 文件,其中包含名称、favicon、url 等所有引用。所以我可以使用 json_decode foreach 它并显示一个文本字段。但是如何将数据库中输入的所有链接存储为 json 格式并使用完整的 URL 检索它们。这是json文件{ "facebook": { "icon": "fab fa-facebook", "title": "Facebook", "url": "https://facebook.com/%s" }, "instagram": { "icon": "fab fa-instagram", "title": "Instagram", "url": "https://instagram.com/%s" }}这就是我显示它的方式 <?php foreach($available_buttons as $key => $button): ?> <div class="col-md-4 mb-3"> <div class="form-group"> <label ><i class="<?= $button->icon ?> mr-2"></i> <?= $button->title ?></label> <input type="text" name="buttons[<?= $key ?>]" class="form-control" /> </div> </div <?php endforeach; ?>我正在使用 json_encode 处理它并将其提交给 db$buttons = json_encode(clean_array($_POST['buttons']));在干净的数组函数中传递数据function clean_array(Array $data) { foreach($data as $key => $value) { $data[$key] = filter_var($data, FILTER_SANITIZE_STRING); } return $data;}但是当我尝试提交时,我在数据库中得到了错误,例如“{'instagram': 'false', 'instagram': 'false'}”我该怎么做?
2 回答
慕娘9325324
TA贡献1783条经验 获得超4个赞
您可以将数据作为 JSON 存储在数据库中,然后从数据库中再次获取并使用 json_decode 进行转换。MySQL 支持 JSON 数据类型。看看这个链接。
https://dev.mysql.com/doc/refman/5.7/en/json.html
慕哥6287543
TA贡献1831条经验 获得超10个赞
filter_var() 失败时可以返回 FALSE,查看文档:https : //www.php.net/manual/en/function.filter-var.php
作为第一个参数,您应该传递标量或字符串,但您传递数组 $data(数组不是标量),因此 filter_var 失败并返回 false。也许你想传递 $value?
例如,你的函数应该是什么样子的例子
function clean_array(Array $data) {
foreach($data as $key => $value) {
$data[$key] = filter_var($value, FILTER_SANITIZE_STRING);
}
return $data;
}
- 2 回答
- 0 关注
- 271 浏览
添加回答
举报
0/150
提交
取消