배열 ("X-Storage-Url", "https : // pathofanapi")로 분할하고 싶습니다.첫 번째 콜론에서 문자열을 분할하는 방법
누군가이 나를 위해 정규식을 말할 수 있습니까? 정규 표현식은 항상 내 약점이었습니다.
감사합니다.
배열 ("X-Storage-Url", "https : // pathofanapi")로 분할하고 싶습니다.첫 번째 콜론에서 문자열을 분할하는 방법
누군가이 나를 위해 정규식을 말할 수 있습니까? 정규 표현식은 항상 내 약점이었습니다.
감사합니다.
$array = array_map('trim', explode(':', $str, 2));
explode 함수의 3 번째 limit 매개 변수를 사용하는 것이 가장 안전합니다. 즉, 거기에있는 공간에 의존하지 않는 것입니다. – ArthurGuy
"각 헤더 필드는 콜론 (": ") 다음에 콜론 (": ")과 필드 값으로 구성됩니다. [...] 필드 값 ** MAY ** 앞에는 단일 SP가 선호 되긴하지만 모든 LWS가옵니다 . " [RFC 2616] (http://tools.ietf.org/html/rfc2616#section-4.2) HTTP 헤더에 "name"과 "field value"사이에 하나 이상의 공백이 있으면 실패합니다. – Saxoier
이렇게 말한 것처럼 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
)
방금 방법을 폭발합니다, 정규식이 필요하지 않습니다이 – Gordon
에 대한 정규식을 필요 없어요. –