2017-07-27 90 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

是的,我用的就是你提供的代碼 但是結果沒有 –