本文目录一览:
- 1、csv文件用PHP要怎么读取
- 2、php读取csv文件怎么是乱码
- 3、php读取csv文件 时每一项的开头如果是中文 将会被忽略, 怎么办用fgetcsv读取的
- 4、php读取csv问题
- 5、php如何读取CSV大文件并且将其导入数据库示例
- 6、php读取CSV文件时,无法读取汉字,编码已强制GB2312
csv文件用PHP要怎么读取
读取csv文件制定行数(行区间)
?php
function get_file_line( $file_name, $line_star, $line_end){
$n = 0;
$handle = fopen($file_name,"r");
if ($handle) {
while (!feof($handle)) {
++$n;
$out = fgets($handle, 4096);
if($line_star = $n){
$ling[] = $out;
php读取csv文件怎么是乱码
出现乱码解决办法:
csv格式不是utf的,所以在读取和写入mysql的时候就会出现乱码,用iconv函数转换下即可。
$Name=iconv('gb2312','utf-8',$file);
php读取csv文件 时每一项的开头如果是中文 将会被忽略, 怎么办用fgetcsv读取的
setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','en_US.utf8'));你在fgetcsv之前加一下这句话。我一般读不出中文的时候加上就好了
php读取csv问题
应该是不会的,你能贴点代码出来不,这样比较模糊,
?php
$file = fopen('windows_2011_s.csv','r');
while ($data = fgetcsv($file)) {
$goods_list[] = $data;
}
foreach ($goods_list as $arr){
if ($arr[0]!=""){
echo $arr[0]."br";
}
}
echo $goods_list[2][0];
fclose($file);
?
还有个问题就是带双引号如果你在往数据库里插入数据的时候可能会导致语法错误而不能插入
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 = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e-getMessage();
}
//读取file.csv文件
if (($handle = fopen("file.csv", "r")) !== FALSE) {
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
//写入数据库
$sth = $db-prepare('insert into test set name=:name,age=:age');
$sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth-bindParam(':age',$row[1],PDO::PARAM_INT);
$sth-execute();
}
fclose($handle);
}
数据表
CREATE TABLE `test` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
`age` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
运行结束后,数据库中会插入csv中的三行数据
php读取CSV文件时,无法读取汉字,编码已强制GB2312
可以尝试在获得提交的CSV之后再对数据编码一次
提及CSV之后你不是要通过虚幻去逐行读取数据吗,
在逐行读取数据的之前,先对这一行 的所有数据进行二次编码