我正在尝试使用Codeigniter的Transendit.com服务。目前我正在尝试构建通知页面。我可以收到POST请求(采用JSON格式)并将其写入文件。奇怪的是,我无法将JSON对象解析为PHP数组,以便我可以从中提取相关数据。当我在写入文件之前对其进行解码时,文件为空。如果我没有将JSON代码写入文件。
这是我的控制器代码:
$result = $_POST['transloadit'];
$result = json_decode($result); // This produces empty content in file
$this->load->helper('file');
if ( ! write_file('./files/myfile.php', $result))
{
echo 'Unable to write the file';
} else {
echo 'File written!';
}
可以在此处找到发送到页面的JSON对象:http://pastie.org/3056727
答案 0 :(得分:3)
您正在尝试将stdclass对象(已解码的json)直接写入文件 - 这将无效。
不解码$result
- 使用原始json字符串写入文件。此外,.json
是一种有效的文件格式 - 请考虑使用它而不是.php
(可能更有意义)。
$result = $_POST['transloadit'];
$this->load->helper('file');
// You can test for valid json like this:
$is_valid_json = json_decode($result) !== NULL;
if ( ! write_file('./files/myfile.json', $result)) {
echo 'Unable to write the file';
}
else {
echo 'File written!';
}