2012-02-11 3 views
0

배열 ("X-Storage-Url", "https : // pathofanapi")로 분할하고 싶습니다.첫 번째 콜론에서 문자열을 분할하는 방법

누군가이 나를 위해 정규식을 말할 수 있습니까? 정규 표현식은 항상 내 약점이었습니다.

감사합니다.

+0

방금 ​​방법을 폭발합니다, 정규식이 필요하지 않습니다이 – Gordon

+0

에 대한 정규식을 필요 없어요. –

답변

3
$array = array_map('trim', explode(':', $str, 2)); 
+2

explode 함수의 3 번째 limit 매개 변수를 사용하는 것이 가장 안전합니다. 즉, 거기에있는 공간에 의존하지 않는 것입니다. – ArthurGuy

+0

"각 헤더 필드는 콜론 (": ") 다음에 콜론 (": ")과 필드 값으로 구성됩니다. [...] 필드 값 ** MAY ** 앞에는 단일 SP가 선호 되긴하지만 모든 LWS가옵니다 . " [RFC 2616] (http://tools.ietf.org/html/rfc2616#section-4.2) HTTP 헤더에 "name"과 "field value"사이에 하나 이상의 공백이 있으면 실패합니다. – Saxoier

0

이렇게 말한 것처럼 explode은이 작업을 수행하는 데 적합한 도구입니다. 는 preg_match와

:

$str = "X-Storage-Url: https://pathofanapi"; 
preg_match('/^([^:]+):\s*(.*)$/', $str, $m); 
print_r($m); 

출력 :

Array 
(
    [0] => X-Storage-Url: https://pathofanapi 
    [1] => X-Storage-Url 
    [2] => https://pathofanapi 
) 

이나와 당신이 정말로 정규식을 원하는 경우

그러나, 여기에서 할 수있는 방법이다 preg_split;

$arr = preg_split('/:\s*/', $str, 2); 
print_r($arr); 

출력 :

Array 
(
    [0] => X-Storage-Url 
    [1] => https://pathofanapi 
) 
관련 문제