2013-03-16 15 views
2

문자열이 $myString = "apple, banana, cherry" 이고이 데이터를 배열로 가져 오려면 두 가지 옵션이 있습니다.str_getcsv를 사용하면 어떤 이점이 있습니까?

$myArray = explode(", ", $myString) 

또는

$myArray = str_getcsv($myString) 

모두 동일한 결과를 제공한다.

누구나 다른 방법보다이 방법 중 하나를 사용하는 장점/단점을 설명 할 수 있습니까?

나는 str_getcsv는 PHP 매뉴얼에 따라, 더 들었습니다 "문자열의 수 enclosured 부분을 치료하거나 문자를 올바르게 이스케이프 않을 것이다) (폭발 때문입니다."

누구든지 간단한 예를 들어이 의미를 설명 할 수 있습니까?

감사 등의 CSV에

+0

이해하기 쉬운 버전을 사용하십시오. 나에게는 폭발적이다. – mkaatman

+2

예를 들어 csv에는 쉼표가 포함 된 값이 포함될 수 있지만 쉼표가 필드 분리 자로 파싱되지 않도록 문자열을 나타 내기 위해 쉼표로 캡슐화됩니다. 예 : 1, 문자열, "내 문자열, 쉼표", 테스트. 4 개 필드가 포함되지 않음 – craig1231

답변

9

str_getcsv 작품 :

"column 1", "column 2", and the third part 
123, 567, 89 

그것은 모든 인용 부분을 언랩하고, 양쪽 끝에서 공백을 제거합니다.

이제 단순한 폭발로 공간을 다듬을 수 있습니다. 그러나/실패 덜 신뢰할 수있는 거기에 약간의 차이가있는 경우 다음과 같습니다

당신이 항상 하나의 쉼표와 각 비트 후 한 칸, 다음 explode(", "이 충분이 있다고 확신하는 경우
1,2,3, 4, 5, 6, 7 

. 그러나 str_getcsv는 좀 더 똑똑합니다. 간단한이 포함 된 쉼표와 공간에 대한 특별 대우의 인식 될 것 폭발

"column 1 contains a , comma", "col 2 starts here" 

: 수동 힌트가 암시로 또한, 따옴표로 구분 기호를 가질 수 있습니다.

관련 문제