2012-10-09 3 views
0

WAN 및 LAN IP를 기록하는 스크립트가 있지만 인쇄 된 대답에는 불필요한 문자가 많이 있습니다. 어떻게 IP를 분할하고 이러한 문자를 제거 할 수 있습니까?PHP 여러 문자 사이의 문자열 분할

인쇄 대답 : {"ip":[["WANIP","LANIP"]]} 내가 원하는 것은 wan을 인쇄하려면 1이고 lan을 인쇄하려면 2 개의 다른 변수입니다.

나는 str_split을 시도해 보았을 때 폭발했다. 아마도 제대로하지 않았거나 이것으로는 할 수 없기 때문에 어떤 대답이 도움이 될 것이다.

+0

입니다 포함 json 요청에서 ?? –

+0

실제로 다른 사람의 서버에서 @file_get_contents를 통해 가져 오는 중이므로 실제 소스 코드가 어떻게 보이는지 확신 할 수 없습니다. – Dan

답변

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

단순히하여 원하는 문자열에 액세스 할 수 있습니다 :

+0

이것은 트릭을 만들었지 만 $ json을 변경하여 텍스트 대신 변수를 반환해야했지만 결국에는 효과가있었습니다. 감사! – Dan

1

"인쇄 된 대답"이 JSON 인 것처럼 보입니다. 어떤 경우에는 json을 구문 분석 한 다음 필요한 값을 추출하십시오.

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

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

희망이 있습니다 :)하는 데 도움이 그런

1

같은 것을 사용할 수 있습니다 $decoded['ip'][0][0]$decoded['ip'][0][1]을 사용하십시오. 내가 처음 불필요한 혼란의 일부를 제거 할

+0

이것은 위의 트릭과 동일합니다. 감사합니다! – Dan

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