2017-07-27 131 views
-1

为什么数据不记录在json文件中? 为什么这个文件没有被创建? 我写在Linux操作系统代码 我在本地不要保存到json文件(php + redis)?

$r = new Redis(); 
$r->connect('127.0.0.1', 6379); 

$key="info_users"; 

    $r->hmset($key, [ 
    'id' => 1, 
    'username' => 'sajjad10ss', 
    'password' => '1q2w3edxsz0', 
    'fulname' => 'sajjad kazemi', 
    'email' => '[email protected]', 
]); 
    $data=array(); 
    $data[] = $r->hgetall($key); 

$json= json_encode($data, JSON_PRETTY_PRINT); 

header('Content-type: text/javascript'); 
if (file_put_contents('xldata.json', $json)) 
{ 
    echo "Saved json to file..."; 
    } 
else{ 
    echo "Oops! Error saving json..."; 
    } 

运行为什么给了以下?哎呀!保存json时出错...;

回答

0

这是最有可能的权限问题。您可以使用is_writable()来检查是否是问题所在。

你应该chown目录以脚本下运行的用户,例如chown nginx:nginx xldata.json如果它在nginx下运行。

我也改变了语法有点为你file_put_contents()失败。

$r = new Redis(); 
$r->connect('127.0.0.1', 6379); 

$key="info_users"; 

    $r->hmset($key, [ 
    'id' => 1, 
    'username' => 'sajjad10ss', 
    'password' => '1q2w3edxsz0', 
    'fulname' => 'sajjad kazemi', 
    'email' => '[email protected]', 
]); 
$data=array(); 
$data[] = $r->hgetall($key); 

$json= json_encode($data, JSON_PRETTY_PRINT); 

if (! is_writable('xldata.json') { 
    die('Unable to write to xldata.json'); 
} 
file_put_contents('xldata.json', $json) or die('Could not write to json file'); 

header('Content-type: text/javascript'); 
echo $json; 
+0

的问题未解决 我使用Apache –

+0

你尝试'is_writable()'?用它来检查文件是否存在并且可以写入。 –

+0

是的,我用的就是你提供的代码 但是结果没有 –