2014-09-17 5 views
1

PHP에서 문자열을 분리하려고합니다. 새 줄과 쉼표라는 두 구분자를 사용하여 문자열을 분할해야합니다. 내 코드는 다음과 같습니다.PHP에서 문자열을 쉼표로 바꾸고 쉼표로 바꾸기

$array = preg_split("/\n|,/", $str) 

그러나 쉼표로 구분하여 문자열을 얻지 만 \ n은 사용하지 않습니다. 왜 그런가요? 또한, "\ r \ n"기호를 고려해야합니까?

+0

이 코드는 테스트 할 때 잘 작동했습니다. 또한, 네,'\ r \ n '을 고려해 볼 것을 제안합니다. – AlliterativeAlice

답변

7

나는 이것이 일어날 수있는 두 가지 이유를 생각할 수 있습니다.

당신은 하나의 인용 문자열을 사용하는 1. :

$array = preg_split("/\n|,/", 'foo,bar\nbaz'); 
    print_r($array); 

    Array 
    (
     [0] => foo 
     [1] => bar\nbaz 
    ) 

그렇다면이 사용 따옴표 대신 "은 ...

$array = preg_split("/\n|,/", "foo,bar\nbaz"); 
    print_r($array); 

    Array 
    (
     [0] => foo 
     [1] => bar 
     [2] => baz 
    ) 

2. 여러 줄 바꿈 시퀀스를하고 난 \R를 사용하는 것이 좋습니다 그렇다면. 이는 ASCII 범위에있는 모든 유니 코드 개행 시퀀스와 일치합니다.

$array = preg_split('/\R|,/', "foo,bar\nbaz\r\nquz"); 
    print_r($array); 

    Array 
    (
     [0] => foo 
     [1] => bar 
     [2] => baz 
     [3] => quz 
    ) 
관련 문제