2011-11-14 6 views
0

API를 사용하고 있습니다. API를 처리하기 위해 데이터를 제출하기 전에 데이터 형식을 지정해야합니다. 5 열의 CSV 파일에 데이터가 있습니다. 지금, 난 csv 파일을 열어 마지막 열을 제외한 각 열 사이의 쉼표로 필드를 조인하고 싶습니다. 나는 대체로 parsecsv을 사용하여 CSV를 파싱하고 데이터를 가져 와서 각 필드의 값 다음에 ","를 추가했지만 이제는 제거해야하는 끝에 하나의 쉼표가 있으므로 지금 substr을 사용하려고합니다. 마지막 하나만 제거하면 올바르게 작동하지 않습니다. 모든 쉼표를 제거합니다. 한번보세요.php 읽기 csv 및 제한 레코드를 실행합니다

foreach ($csv->data as $key => $row){ 
    foreach ($row as $value) { 
    $output = "$value, "; 
     //echo $output; 
    $final = substr($output, 0, -2); 
    echo $final."\n"; 
    } 
} 

다른 질문이 있는데, 어떤 아이디어가 있지만 확실하지는 않습니다. 이 API는 한 번에 100 개의 레코드 만 받아 들일 수 있으므로 프로세스를 완료하려면 스크립트를 여러 번 실행해야합니다. 이것을 어떻게 할 수 있습니까? 나는 처음에 csv에서 행 수를 얻고 루프 안에서 100을 실행 한 다음 계속해야한다고 생각하고 있습니다.하지만 계속 진행하려면 100을 지나면 일시 중지해야합니까? .. 몇 가지 예를 볼 수있다 그리고 거기에서 갈 수있는 경우 me..it이 좋은 것

감사

+0

당신이 $ 출력에 할당하는대로, 잘못된 구축 코드를 알려 주시기 바랍니다 각 반복마다 (추가하는 것이 아니라). 대신 fputcsv를 사용해보십시오. 'php : // temp'라는 파일을 열어 임시 파일을 메모리에서 열 수도 있습니다. – slugonamission

답변

0
$final .= substr($output, 0, -2); 
+0

확실히, 시도 할 것입니다. 두 번째 부분에 대한 아이디어가 있습니까? 레코드 수가 서로 다를 때마다 5000 레코드가 될 수 있으므로 API에 50 번 호출해야합니다. 다음 날에는 6000 레코드가 될 수 있습니다.이 호출은 어떻게 수행 할 수 있습니까? – Jay

+0

그건 이상한데, 아마도 당신은 자신의 API를 작성해야합니다. 처음에는 csv 문자열에있는 모든 요소의 배열을 만들어야합니다. $ array = explode (',', $ csvstring); 보다 복잡한 솔루션을 원하면 오른쪽의 관련 질문을 확인하십시오. – Shomz