[解決済み] PHP: json_decode が動作しない。
2022-02-05 21:56:46
質問
これは ではない が動作します。
$jsonDecode = json_decode($jsonData, TRUE);
しかし
$jsonData
を手動でデコード関数内に置くと、動作します。
これは 動作 :
$jsonDecode = json_decode('{"id":"0","bid":"918","url":"http:\/\/www.google.com","md5":"6361fbfbee69f444c394f3d2fa062f79","time":"2014-06-02 14:20:21"}', TRUE);
を出力しました。
$jsonData
をコピーして、上記のようにデコード関数に入れました。すると、うまくいきました。しかし、もし私が
$jsonData
を直接デコード関数に入れると、うまくいきません。
var_dump($jsonData)
を表示します。
string(144) "{"id":"0","bid":"918","url":"http:\/\/www.google.com","md5":"6361fbfbee69f444c394f3d2fa062f79","time":"2014-06-02 14:20:21"}"
は
$jsonData
は、暗号化された
$_GET
変数を使用します。それを暗号化するために私はこうしています。
$key = "SOME KEY";
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $data, MCRYPT_MODE_ECB, $iv);
$iv = rawurlencode(base64_encode($iv));
$enc = rawurlencode(base64_encode($enc));
//To Decrypt
$iv = base64_decode(rawurldecode($_GET['i']));
$enc = base64_decode(rawurldecode($_GET['e']));
$data = mcrypt_decrypt(MCRYPT_BLOWFISH, $key, $enc, MCRYPT_MODE_ECB, $iv);
解決方法は?
おそらく、復号化されたデータからパディングを取り除く必要があるのでしょう。文字列の中には124の文字が含まれていますが
var_dump
は144と報告しています。つまり、20文字のパディングを除去する必要があります(文字列の末尾にある一連の" \0" バイト)。
おそらく、ブロック末尾の4バイトと空の16バイトのブロック(データの終わりを示すため)です。
現在、文字列の復号化/暗号化をどのように行っていますか?
編集 :
文字列の末尾の0バイトをトリミングするために追加する必要があります。
$jsonData = rtrim($jsonData, "\0");
関連
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] PHPのstartWith()関数とendsWith()関数
-
[解決済み] PHPスクリプトからJSONを返す
-
[解決済み] json_decode を配列に変換する
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み】Fatal error: 未定義の関数 sqlsrv_connect() を呼び出した。
-
[解決済み】PHP定数「PHP_EOL」はいつ使うの?
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】PHPからPythonスクリプトを実行する
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。