使用php -r、文件读写和标准输入输出可实现JSON、XML、CSV等格式转换。例如:用json_decode将JSON转数组,fgetcsv读取CSV转JSON,SimpleXMLElement处理数组转XML,结合php://stdin接收管道数据进行处理。示例包括命令行直接执行代码、脚本批量转换及构建数据流水线,关键在于灵活运用内置函数与输入输出方式。
在PHP命令行中实现数据格式转换,主要是利用PHP内置函数和命令行参数处理能力,快速完成JSON、XML、CSV、数组等格式之间的相互转换。不需要启动Web服务器,适合做脚本化处理。
使用php -r直接执行代码
通过php -r可以在终端直接运行PHP代码,适合简单格式转换。
示例:将JSON转为关联数组并输出
php -r "$json = '{\"name\": \"Tom\", \"age\": 25}'; $data = json_decode($json, true); print_r($data);"示例:将数组转为JSON字符串
立即学习“PHP免费学习笔记(深入)”;
php -r "$arr = ['status' => 'ok', 'code' => 200]; echo json_encode($arr) . PHP_EOL;"读取文件并转换格式
常用于批量处理数据文件。例如从CSV读取内容转成JSON。
示例:CSV转JSON脚本(csv_to_json.php)
$csv = fopen('data.csv', 'r');$data = [];
while (($row = fgetcsv($csv)) !== false) {
$data[] = $row;
}
fclose($csv);
echo json_encode($data, JSON_PRETTY_PRINT);
命令行执行:
php csv_to_json.php > output.json处理JSON与XML互转
PHP支持simplexml和json扩展,可实现JSON与XML转换。

将图片转换为吉卜力艺术风格的作品


示例:数组转XML
php -r "\$data = ['user' => ['name' => 'Alice', 'age' => 30]];\$xml = new SimpleXMLElement('<root/>');array_walk_recursive(\$data, function(\$value, \$key) use (\$xml) { \$xml->addChild(\$key, \$value);});echo \$xml->asXML();"注意:XML转JSON可先用simplexml_load_string解析XML,再用json_encode转换。
通过标准输入处理数据
使用php://stdin可以从管道接收数据,适合与其他命令组合。
示例:接收JSON输入,转为大写键名的数组
echo '{"id": 1, "name": "john"}' | php -r "\$input = file_get_contents('php://stdin');\$data = json_decode(\$input, true);\$upper = array_change_key_case(\$data, CASE_UPPER);echo json_encode(\$upper);"输出:{"ID":1,"NAME":"john"}
这种模式可用于构建数据处理流水线,比如:
cat users.json | php format.php | jq '.[] | .email'基本上就这些常用方式。掌握php -r、文件读写、标准输入输出和核心编码函数,就能高效完成命令行下的数据格式转换任务。关键是根据实际输入输出需求选择合适的方法。不复杂但容易忽略细节,比如字符编码、错误处理和格式美化选项。
以上就是PHP命令怎么实现数据格式转换_PHP命令行数据格式转换的详细内容,更多请关注php中文网其它相关文章!