導航:首頁 > 編程語言 > phpcsvutf8

phpcsvutf8

發布時間:2024-04-21 15:24:16

『壹』 php 如何從數據里選擇所需要信息然後生成csv文件自動保存在指定的路徑(不提示保存,自動)

命令行模式下,或者web模式下保存的路徑在伺服器中,可以達到你的要求(有該路徑的許可權即可)

如果是在web模式下,不提示直接保存到訪客的電腦中的某個位置,是不可以的。

web模式保存到客戶端,只能通過下載,由用戶指定,或保存到默認的下載目錄。

以下是代碼示例:

$dsn='mysql:dbname=testdb;host=127.0.0.1';
$user='dbuser';
$password='dbpass';

//連接資料庫pdo
try{
$dbh=newPDO($dsn,$user,$password,array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SETNAMES'UTF8'"));
}catch(PDOException$e){
echo'Connectionfailed:'.$e->getMessage();exit;
}

//讀取數據,具體sql你根據情況修改
$stat=$dbh->prepare('SELECT*FROM`table`WHERE`id`>0LIMIT100;');
$stat->execute();
$result=$stat->fetchAll(PDO::FETCH_ASSOC);

//創建csv文件並打開文件指針
$filepath='file.csv';
$fp=fopen($filepath,'w');

//寫入數據
foreach($resultas$i=>$row){
//寫入標題行
if($i==0){
fputcsv($fp,array_keys($row));
}
fputcsv($fp,$row);
}

//關閉文件指針
fclose($fp);

//把文件輸出到下載
$file=fopen($filepath,"r");//打開文件
$size=filesize($filepath);
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".$size);
Header("Content-Disposition:attachment;filename=download.csv");
echofread($file,$size);
fclose($file);

相關知識點:

PHP: fputcsv

PHP:PDO

資料庫查詢的時候只返回列名,防止列出現重復,csv里會有重復的數據

『貳』 php導出csv欄位數據怎麼對應

php導入CSV文件:
$line_number = 0;
$handle = fopen("1.xls","r");
while ($data = fgetcsv ($handle, 100000, ",")) {
if($line_number == 0){
$line_number++;
continue;
}
//z這樣就可以去掉表頭的那一行
for ($i = 0; $i < count($data); $i++) {
$zian = $data[$i];
}
}

2.php導出CSV文件

header( "Cache-Control: public" );
header( "Pragma: public" );
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=txxx.csv");
header('Content-Type:APPLICATION/OCTET-STREAM');
ob_start();
$header_str = iconv("utf-8",'gbk',"信息id,標題,名稱,電話,QQ,Email,內容,時間\n");
$file_str="";
$mysqli= new mysqli('localhost','root','','test');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$sql='select * from messages';
$mysqli->query("set names utf8 ;");
$result=$mysqli->query($sql);
if($result){
while ($row = mysqli_fetch_assoc($result)){
$file_str.= $row['id'].','.$row['title'].','.$row['name'].','."'{$row['telephone']}'".','.$row['qq'].','.$row['email'].','.str_ireplace(',',',',$row['content']).','.$row['retime']."\n";
}
}else{
echo "nonono!!!";
}
$file_str= iconv("utf-8",'gbk',$file_str);
ob_end_clean();
echo $header_str;
echo $file_str;
?>

『叄』 php導出csv文件時,只能在瀏覽器上顯示文件內容,沒有下載提示,更沒有下載的csv文件,幫忙指點啊!

據我的理解,export_csv這個函數的功能就是顯示csv內容。

按照你的說明猜測,你應該是先將資料庫的內容輸出到csv文件里,然後再給出一個指向該文件的下載鏈接就可以了。

export_csv這個函數可以設計成直接用 file 操作函數寫入內容就可以了,因為csv本身是純文本文件,沒有什麼特殊的文件格式。

『肆』 php導入csv文件輸出是亂碼,怎麼解決

//這是我前幾天回答過的一個問題下面以讀取淘寶csv文件為例
if($result){//如果上傳成功了,這是文件路徑
if(!($handle=fopen_utf8($result,"r"))===FALSE){//調取下邊函數fopen_utf8;
$errorArr=array();
$i=0;
while(($cols=fgetcsv($handle,1000," "))!==FALSE){
++$i;
if($i<4)continue;
$taobaolmsx=$cols[21];//寶貝屬性;
$taobaoxxsx=$cols[30];//銷售屬性;
$goodsBn=$cols[33];//商家編碼;

}
fclose($handle);
}

unlink($result);
}else{
echo'fileuploaderror';exit;
}

/*讀取csv文件用*/
functionfopen_utf8($filename){
$encoding='';
$handle=fopen($filename,'r');
$bom=fread($handle,2);
rewind($handle);

if($bom===chr(0xff).chr(0xfe)||$bom===chr(0xfe).chr(0xff)){
//UTF16ByteOrderMarkpresent
$encoding='UTF-16';
}else{
$file_sample=fread($handle,1000)+'e';//readfirst1000bytes
//+eisaworkaroundformb_stringbug
rewind($handle);

$encoding=mb_detect_encoding($file_sample,'UTF-8,UTF-7,ASCII,EUC-JP,SJIS,eucJP-win,SJIS-win,JIS,ISO-2022-JP');
}
if($encoding){
stream_filter_append($handle,'convert.iconv.'.$encoding.'/UTF-8');
}
return($handle);
}

『伍』 php如何讀取CSV大文件並且將其導入資料庫示例

思路:

讀取csv文件,每讀取一行數據,就插入資料庫

示例

文件夾結構

/
file.csv//csv大文件,這里只模擬三行數據,不考慮運行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運行效率的瓶頸主要在寫入資料庫操作)
index.php//php文件

file.csv

singi,20
lily,19
daming,23

index.php

/**
*讀取csv文件,每讀取一行數據,就插入資料庫
*/

//獲取資料庫實例
$dsn='mysql:dbname=test;host=127.0.0.1';
$user='root';
$password='';
try{
$db=newPDO($dsn,$user,$password);
}catch(PDOException$e){
echo'Connectionfailed:'.$e->getMessage();
}

//讀取file.csv文件
if(($handle=fopen("file.csv","r"))!==FALSE){
while(($row=fgetcsv($handle,1000,","))!==FALSE){
//寫入資料庫
$sth=$db->prepare('insertintotestsetname=:name,age=:age');
$sth->bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth->bindParam(':age',$row[1],PDO::PARAM_INT);
$sth->execute();
}
fclose($handle);
}

數據表

CREATETABLE`test`(
`id`INT(10)UNSIGNEDNOTNULLAUTO_INCREMENT,
`name`VARCHAR(255)NULLDEFAULT''COLLATE'utf8mb4_bin',
`age`INT(10)NULLDEFAULT'0',
PRIMARYKEY(`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;

運行結束後,資料庫中會插入csv中的三行數據

閱讀全文

與phpcsvutf8相關的資料

熱點內容
大疆帶屏控如何安裝app 瀏覽:945
國產大胸電影 瀏覽:706
模擬器中的pco的命令提示窗口 瀏覽:874
蘿卜雙端源碼 瀏覽:873
魔域gm易語言工具源碼 瀏覽:452
機械設計手冊pdf電子版 瀏覽:98
為什麼網吧伺服器會掉盤 瀏覽:526
文電通pdf套裝版4 瀏覽:327
如何使用百度地圖伺服器地址 瀏覽:921
吉林租伺服器託管雲伺服器 瀏覽:781
中越反擊戰電影全集 瀏覽:116
溯源碼驗證碼無效 瀏覽:354
風月片有酷網站 瀏覽:687
大尺度電影韓劇 瀏覽:680
安卓手機怎麼聯接a 瀏覽:716
好色小姨 小說 瀏覽:677
網站的源碼怎麼使用 瀏覽:61
我的世界伺服器b2怎麼玩 瀏覽:582
付費電影免費看。 瀏覽:844
白領解壓培訓 瀏覽:578