2011-03-01 3 views
3

explode() 함수에 문제가 있습니다. 나는 "Name : Replica"와 같은 문자열을 폭발 시키지만 때로는 문자열에 2 개 이상의 콜론 (":")이 있고 스크립트가 다음과 같기 때문에 문제가 있습니다. 예 : "이름 : replica : replica2 : replica3 "PHP : Text explode() 문제

$explode = explode(":", $string); 
$query = "INSERT INTO `table` (`field_1`, `field_2`) VALUES ('".$explode[0]."', '".$explode[1]."')"; 

그리고이 문제에 대한 해결책이 필요합니다. 첫 번째 콜론 (":") 다음에 문자열을 분할하면 두 번째 부분이 마지막 부분이어야합니다.

감사합니다. 조지!

p.s. - 내 영어로 미안해.

+1

어떻게 콜론을 분할해야하는지 어떻게 알 수 있습니까? – Jacob

+0

두 개 이상의 콜론은 다음을 의미합니다.'name : replica : blah : bluh' 또는'name :: replica'? – Shad

+0

두 개 이상의 콜론 의미 : 이름 : asdasd : asdasd : ahsiduashd : 복제본 : rep2 –

답변

6

난 당신이 explode()에 '제한'(세 번째) 인수를 사용하려는 생각 :

list($attribute, $value) = explode(":", $string, 2); 

을 그 것이다 두 가지 결과 만 얻도록하십시오.

http://php.net/manual/en/function.explode.php

+0

감사합니다! 이것은 내가 필요로하는 것입니다 :) 다음에 나는 설명서를 처음 읽으겠습니다. –

1

@ Jon Nalley가 제안한대로 편집되었습니다. 제한 (3 매개 변수)에만 PHP 5.x의에 의해 지원됩니다

list($attribute, $value) = explode(":", $string, 2); 
+1

잘 했어. 우아하고 단순합니다. –

+0

나는 당신의 방법을 시도했지만 불행히도 ... 이것은 나의 코드이다 : '$ string = "이름 : asdasd : asdasd : asdasdad"; list ($ attribute, $ value) = 폭발 (":", $ string); echo $ attribute. $ value;' 시도해보십시오. –

2

사용 explode()에 세번째 $limit 매개 변수 :

$explode = explode(":", $string, 2); 

이 반환 된 두 번째 문자열 조각에 모든 후속 콜론을 가하고, 최대 2 개 요소 배열을 반환하는 explode()을 알려줍니다. 참고로, 예에 따르면 콜론과 공백을 사용해야합니다.

$explode = explode(": ", $string, 2); 

어쩌면 그저 우연의 일치 일 수 있습니다.