배열을 CSV 형식으로 변환하려고 시도할 때 개발자는 끝없는 문제에 직면할 수 있습니다. 라인 및 강제 다운로드 비활성화. 이 문서에서는 이러한 문제를 다루고 보다 효율적인 접근 방식을 제시합니다.
초기 코드 시도에서는 여러 개의 중첩 루프를 사용하여 데이터베이스에서 데이터를 추출하고 추가합니다. CSV 파일로 변환합니다. 그러나 이 방법을 사용하면 올바른 형식의 CSV 대신 긴 한 줄이 생성됩니다. 또한 파일 다운로드가 자동으로 시작되지 않습니다.
이러한 문제를 해결하려면 다음 단계를 구현하는 것이 좋습니다.
값 쓰기에 fputcsv() 활용:
<code class="php">fputcsv($output, array('id','name','description'));</code>
파일 다운로드 강제:
<code class="php">header("Content-Disposition:attachment;filename=pressurecsv.csv"); </code>
위 제안 사항을 통합하면 더 효과적인 코드가 생성됩니다.
<code class="php">$num = 0; $sql = "SELECT id, name, description FROM products"; if($result = $mysqli->query($sql)) { while($p = $result->fetch_array()) { $prod[$num]['id'] = $p['id']; $prod[$num]['name'] = $p['name']; $prod[$num]['description'] = $p['description']; $num++; } } $output = fopen("php://output",'w') or die("Can't open php://output"); header("Content-Type:application/csv"); header("Content-Disposition:attachment;filename=pressurecsv.csv"); fputcsv($output, array('id','name','description')); foreach($prod as $product) { fputcsv($output, $product); } fclose($output) or die("Can't close php://output");</code>
이 향상된 접근 방식은 효율적인 CSV 줄 생성을 위해 fputcsv()를 활용하고 파일을 시작하는 데 필요한 헤더를 설정합니다. 다운로드하세요.
위 내용은 PHP 배열을 CSV 형식으로 내보낼 때 발생하는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!