2012-05-26 5 views
1

문자열을 분석하는 데 어려움이 있습니다. 이것은 내가 가지고있는 구조입니다 :특정 문자열 다음에 문자열을 따옴표로 묶기

"Title":"Avatar","Year":"2009","Rated":"PG-13","Released":"18 Dec 2009","Runtime":"2 h 42 min" 

내가 내가 결국 등등 $ 제목, $ 년, $ 런타임과를 얻을되도록 자신의 변수에 모든 결과를 가하고 싶지.

많은 PHP 함수가 있지만 그 중 다수를 시도하고 원하는 결과를 얻지 못했지만 도움이 필요합니다.

+0

어떤 기능을 사용 했습니까? –

답변

1

때문에 문자열에 몇 가지 수정 후, 당신이 그것을 JSON 문자열을 만들 수 있습니다 {} 후행 추가하여. 그리고 수식 한 문자열에 json_decode 함수를 호출 : 그것은 작동

$str = '"Title":"Avatar","Year":"2009","Rated":"PG-13","Released":"18 Dec 2009","Runtime":"2 h 42 min"'; 
$arr = json_decode("{{$str}}", true); // True to make it array, not object 

// $arr contains parsed data 

, 단지 this demo 봐. 당신은 같은 변수를 사용할 수 있습니다 :

echo $arr["Title"]; 

하지만 당신이 정말로 $title 필요한 경우 (을 나는이을 수행하지 않는 것이 좋습니다) 당신이 extract 기능

extract($arr); 

을 사용할 수 있습니다 그리고 당신은 그것을 좋아 액세스 할 수 있습니다 :

echo $title; 
+0

+1,'explode()'보다 훨씬 좋아 보이기 때문에 더 젊은 폴란드 인을 보게되어 기쁩니다. :) 잘 했어! – Pateman

1

는 다음을 시도 할 수 있습니다 :

<?php 
    $string = "Title":"Avatar","Year":"2009","Rated":"PG-13","Released":"18 Dec 2009","Runtime":"2 h 42 min" 
    $segments = explode(',', $string); 
    foreach($segments as $segment) { 
     list($key, $value) = explode(':', $segment); 
     echo $key, ' ', $value; 
    } 
+0

'폭발 '은 나쁜 해결책입니다. 코드는''Title : ":"foo "'에서 깨질 것입니다. – Robik

+0

@Donut "Title :"이 (가) 보지 못했습니다 : ... "Title": ... 그래서 내가 폭발을 사용합니다. 세미 콜론은 키 또는 값에 사용되지 않습니다. 데이터 출처에 대한 정보가 충분하지 않을 때 위험합니다. –

+0

답변에서 유의해야합니다. 또한, anwers를 게시하는 경우 게시 좋은 beacue OP는 그것을 모르고 다시 작동 할 수 없다는 것을 알 수 있습니다. – Robik

관련 문제