【发布时间】:2022-01-15 10:49:39
【问题描述】:
我正在尝试将 json 对象写入 CSV 文件,但它不起作用,文件为空。
有什么建议吗?
在我的 PHP 代码下面
//json to csv
$jsondata = '{"regNo":"92-212-98","tradName":"FEVADOL EXTRA TAB.","genericName":"PARACETAMOL, CAFFEINE","price":"5.300","strngth":"500, 65 mg","exD":"21/07","PRODREGSTATUS":"PRODNOTFOUND","authstatus":"1","marketingstatus":"1","productstatus":null}';
$json = json_decode($jsondata);
$fp = fopen('file.csv', 'w');
// if($fp == false){
// echo 'false open';
// }else{
// echo 'true open';
// }
foreach ($json as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
【问题讨论】:
-
$jsondata在这里是一个字符串。您可能需要先通过json_decode()运行它以获取可以迭代的数组或对象。 -
此外,您可能需要检查
$fp是否等于false。如果是这样,这意味着 PHP 无法打开文件进行写入。这应该会触发警告,但根据您的设置,这些可能会被隐藏。 -
@rickdenhaan 我更新了我的问题,但它已成功打开文件。
-
@rickdenhaan 我更新了我的问题,但即使添加了 json_decode() 也没有运气,文件是空的。
-
您需要在本地开发框中启用error reporting,这样您才能看到“PHP Fatal error: Uncaught TypeError: fputcsv(): Argument #2 ($fields) must be of type array, string给定”。几乎每次我给出这条建议时都会被忽略,但这是唯一明智的发展方式。