-1

私は cURL を使用して、ページの POST と取得をいじっています。POST データをエンコードしようとしているサイトが、次のようにエンコードされていることに気付きました。

Data=%7B%22Data%22%3A%22%5B%7B%5C%22

PHPでこれをエンコード/デコードするにはどうすればよいですか? 代わりにそれを行う Web サイトを見つけましたが、自分で行う方法を学びたいと思います。

4

1 に答える 1

5

urldecode()関数を見てください:

echo urldecode('Data=%7B%22Data%22%3A%22%5B%7B%5C%22'); // Data={"Data":"[{\"

そして、それを再エンコードするためのurlencode()関数 (= 記号を含む):

echo urlencode('Data={"Data":"[{\"'); // Data%3D%7B%22Data%22%3A%22%5B%7B%5C%22

JSON 文字列が送信されているようです。次の操作を行うことで、これを操作しやすい形式に変換できます。

$fields = parse_str('Data=%7B%22Data%22%3A%22%5B%7B%5C%22');
$data = $fields['Data']; //$data now contains the decoded JSON as a string
$array = json_decode($data); //parse the JSON into an associative array
var_dump($array); //see what it looks like (could also use print_r($array);)
于 2013-09-11T01:58:21.433 に答える