2012-02-20 2 views
5

전화 번호가 들어있는 텍스트 영역이 있습니다. 각 번호는 별도의 줄에 있습니다. 나는PHP : 텍스트 영역 줄을 별도의 배열 요소로 분해

explode("\n", $numbers); 

또는

이 작동하지 않습니다
explode("\r\n", $numbers); 

를 사용하여 배열로 해당 문자열을 폭발합니다. 도와주세요. 감사!

+3

을 말해, 여기에 어떤 문제가 있습니까? –

+1

'explode ("\ n", $ numbers); 또는'explode ("\ r \ n", $ numbers); 아니면 실제로 두 문을 서로 한 줄로 쓰고 있습니까? –

+0

조금 더 많은 코드와 HTML 양식, 좀 더 주변의 코드를 게시해야합니다. – h00ligan

답변

6

$records = preg_split('/[\r\n]+/', $mystring, -1, PREG_SPLIT_NO_EMPTY);

이 그것을해야한다.

6

manual 상태 : 문자열 배열을 반환합니다.

결과를 저장해야합니다. or도 그런 식으로 작동하지 않습니다. 입력에 \n 또는 \r\n이 포함되는지 여부를 알 수없는 경우 \r을 빈 문자열로 바꾼 후 \n에서 폭발 할 수 있습니다.

트릭해야한다 : 당신이 그렇게 똑똑하면

$numbers = explode("\n", str_replace("\r", "", $numbers)); 
+1

당신 말이 맞아요. 사용자가 제출 한 데이터는 시스템 EOL로 번역되지 않을 수 있습니다. 코멘트 철회. –

1

사용이

<?php 

$input = $_POST['textarea_name']; 
$new_array = array_values(array_filter(explode(PHP_EOL, $input))); 

// explode -> convert textarea to php array (that lines split by new line) 
// array_filter -> remove empty lines from array 
// array_values -> reset keys of array 

?> 
관련 문제