ホームページ >バックエンド開発 >PHPチュートリアル >PHPでデータをCSV形式でエクスポート

PHPでデータをCSV形式でエクスポート

WBOY
WBOYオリジナル
2016-06-23 14:00:58947ブラウズ

PHPはphpexcelクラスを使わずにデータをcsv形式でエクスポートします。他の方法はありますか?自分でクラスを作成するにはどうすればよいですか?ありがとう!


ディスカッションに返信(解決策)

$fp = fopen('csv文件名', 'w');$rs = mysql_query('select * from tbl_name');while($row = mysql_fetch_assoc($rs) {  fputcsv($fp, $row);}fclose($fp);

モデレータの正解 +1

データが大きい場合、このように書くと非常に遅くなります

phpコードを使用して書くので、遅いのは正常です
データベース ディレクトリにアクセスする権限がある場合は、ENGINE=CSV を使用してテーブルを作成し、そこにデータをコピーすることもできます

まず、データをエクスポートする場所について話しましょう。

クエリされたデータをデータベースにエクスポートします!

<form enctype="multipart/form-data" action="import.php" method="POST">    导入模板      <label for="文件选择">文件选择:</label><input name="csv_goods" type="file" />    <input type="submit" value="导入" name="import" /></form><?phpif (isset($_POST['import'])){        $file = $_FILES['csv_goods'];        $file_type = substr(strstr($file['name'],'.'),1);        // 检查文件格式    if ($file_type != 'csv'){        echo '文件格式不对,请重新上传!';        exit;    }    $handle = fopen($file['tmp_name'],"r");    $file_encoding = mb_detect_encoding($handle);        // 检查文件编码    if ($file_encoding != 'ASCII'){        echo '文件编码错误,请重新上传!';        exit;    }        $row = 0;    while ($data = fgetcsv($handle,1000,',')){        //echo "<font color=red>$row</font>";  //可以知道总共有多少行        $row++;        if ($row == 1)        continue;        $num = count($data);        // 这里会依次输出每行当中每个单元格的数据        for ($i=0; $i<$num; $i++){            echo $data[$i]."<br>";            // 在这里对数据进行处理        }    }        fclose($handle);}?> 

バックグラウンドが遅くても問題ありません
ユーザーが使用する場合は、ユーザーの使用頻度を制限することを考慮する必要があります
または、拡張などの他の方法を使用して高速化します

遅い速度はこのコードとは関係ないようです

データベースにクエリを実行していません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。