php写入json文件的核心是先用json_encode()将合法utf-8数据转为json字符串,再用file_put_contents()保存;需检查编码、类型、权限及错误,推荐使用json_unescaped_unicode | json_pretty_print提升可读性。

PHP写入JSON文件,核心是先用 json_encode() 把数据转成JSON字符串,再用 file_put_contents() 保存到文件。关键在于确保数据结构合法、编码正确、路径可写。
确保数据能被正确编码为JSON
PHP数组或对象必须是UTF-8编码,且不能含资源(resource)、闭包(closure)或循环引用,否则 json_encode() 会返回 false。
- 用
is_array()或is_object()检查数据类型 - 用
json_last_error()查看失败原因,例如:if (json_encode($data) === false) { echo json_last_error_msg(); } - 中文字符无需额外处理,只要PHP源码和数据本身是UTF-8即可
写入文件时注意格式与权限
推荐使用 JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT 提升可读性,同时确认目标目录有写入权限。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);file_put_contents('data.json', $json);- 若需追加内容(不覆盖),用
FILE_APPEND标志;但JSON文件一般不适用追加,因为会破坏结构 - 写入前可用
is_writable(dirname('data.json'))检查目录是否可写
完整示例:安全写入JSON文件
包含错误检查、目录创建和编码验证的实用写法:
$data = ['name' => '张三', 'score' => 95.5, 'tags' => ['php', 'json']];$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);if ($json === false) { die('JSON编码失败:' . json_last_error_msg()); }$file = 'output/data.json';if (!is_dir(dirname($file))) { mkdir(dirname($file), 0755, true); }if (file_put_contents($file, $json) === false) { die('文件写入失败,请检查路径和权限'); }
常见问题提醒
避免踩坑的几个细节:
- 不要用
echo或print_r直接输出到JSON文件——那会写入HTML/调试信息,不是纯JSON - 不要手动拼接JSON字符串,极易出错;始终依赖
json_encode() - 如果文件已存在,
file_put_contents()默认覆盖,无需先unlink() - Web服务器运行PHP时,文件属主通常是
www-data或apache,确保该用户对目录有写权限
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










