0

WAN と LAN の IP を記録するスクリプトがありますが、出力された回答の周りに不要な文字がたくさん含まれています。IP を分割してこれらの文字を取り除くにはどうすればよいですか?

印刷された回答: {"ip":[["WANIP","LANIP"]]} 2 つの異なる変数が必要です。1 つは wan を出力し、もう 1 つは lan を出力します。

私は str_split と爆発を試みましたが、おそらく私はそれを正しくしなかったか、これらでそれを行うことができないので、どんな答えでも役に立ちます.

4

5 に答える 5

2
$json = '{"ip":[["WANIP","LANIP"]]}';
$decoded = json_decode($json, true); // true means it will format it into an assoc array

$decoded['ip'][0][0]次に、 and を使用するだけで、必要な文字列にアクセスできます$decoded['ip'][0][1]

于 2012-10-09T19:53:21.620 に答える
1

最初に不要な混乱の一部を取り除いてから、爆発させます。

$response =  '{"ip":[["WANIP","LANIP"]]}'; //or however you load your variable
$arryRemove = array('"', 'ip:[[', ']]}'); //specify an array of things to remove
$response = str_replace($arryRemove, "", $response);

$arryIPs = explode(",", $response);

$arryIPs[0]WANIP $arryIPs[1]を含む、LANIP を含む

于 2012-10-09T19:54:41.853 に答える
1

「印刷された回答」は JSON のようです。その場合、json を解析してから、必要な値を抽出します。

于 2012-10-09T19:42:15.997 に答える
1

このコードを試してください:

$data = "{\"ip\":[[\"WANIP\",\"LANIP\"]]}";
$jdecode = json_decode($data,true);

echo $jdecode['ip'][0][0];
echo $jdecode['ip'][0][1];

お役に立てれば :)

于 2012-10-09T19:50:44.053 に答える
1

json_decode()のようなものを使用できます

于 2012-10-09T19:47:34.600 に答える