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

看起来您的“打印答案”是 JSON。在这种情况下,解析 json 然后提取所需的值。

于 2012-10-09T19:42:15.997 回答
1

你可以使用类似json_decode()

于 2012-10-09T19:47:34.600 回答
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

我会先去掉一些不必要的混乱,然后分解:

$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 回答