2017-07-27 7 views
-1

ファイルjsonにデータが記録されないのはなぜですか? このファイルが作成されないのはなぜですか?私はなぜ、次のことを配るローカル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..."; 
    } 

実行しています 私は、Linuxオペレーティングシステムでコードを書くのか?おっとっと! 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

はい、私はあなたが提供したコードを正確に使用しました しかし、結果はなかった –

関連する問題