php读文件一行数据 php读取一行数据
php如何读取CSV大文件并且将其导入数据库示例
思路:
创新互联公司专注于企业成都全网营销推广、网站重做改版、隆化网站定制设计、自适应品牌网站建设、H5高端网站建设、商城系统网站开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为隆化等各大城市提供网站开发制作服务。
读取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从数据库中读取内容并存入文件和从文件读取数据插入数据库的代码
//第一种
?php
$conn = mysql_connect("主机名","用户名","密码");
mysql_select_db("数据库名",$conn);
$sql = "select * from user";
$result = mysql_query($sql);
$data="";
while($row = mysql_fetch_row($result)){
foreach($row as $v){
$data .=$v."|"; //加个树线隔开字段
}
nl2br($data); //读完一行回车
}
file_put_contents("abc.txt",$data);
//第二种
?php
$filename = "abc.txt";
$res = fopen($filename,"r");
while(!feof($res)){
$buffer = fgets($res);
$buffer = str_replace(' ', '|', $buffer);
$array = explode('|', $buffer);
foreach($array as $v){
if(strlen($v)0){
$arr[] = $v;
}
}
}
fclose($res);
//组装数组插入数据库就可以了
php如何获取txt文本指定行的指定数据?
如果直接使用file_get_contents来读取文件,那么在文件很大的时候会很占内容,比如这个文件有1GB的时候。
这个时候使用传统的文件操作方式就好的多,因为是查找嘛,逐行读取匹配应该也是可以的,下面是我的一个建议,不知道是否满足你的要求,可以看下:
//
需要查找的内容
$search
=
'bcd';
//
打开文件
$res
=
fopen('a.txt',
'r');
while
($line
=
fgets($res,
1024))
{
//
根据规则查找
if
(strpos($line,
$search)
===
0)
{
//
根据既定规则取得需要的数据
echo
substr($line,
4,
-1);
//
这里就是你想得到的
break;
}
}
//
关闭文件
fclose($res);
php一条一条地读取数据,并显示
首先你的需求总的来说是有3个:
1,显示总的数据
2,点击显示下一条
3,定位跳转到某一条
针对的解决办法:
1,这个对数据库而言,就是读取所有符合展示条件的信息
$where = 你的搜索条件;
$all_info = $this-db-getall('table_name','$where');
2和3的解决办法是,在数据库内有一个id字段,用于唯一标示你的信息
点击显示下一条:
假设你的当前信息id = 14 , 那么,你查询出来 id = 14+1 的信息即可,
跳转到特定的条目:
那就是你给id赋值,进行查询即可。
php用file读取txt指定行写入mysql
?php
$txt=file('aaa.txt');
echo $txt[0];
echo $txt[1];//读取第2行内容。因为数组的默认键值是0开始的
mysql_connect('127.0.0.1','root','123456');
$sql="insert into text.tab (a,b) values('$txt[0]', '$txt[1]')";
if (mysql_query($sql)) echo '插入数据库成功';
else '插入数据库失败,SQL语句:$sqlbr错误:".mysql_error();
mysql_close();
?
后面几行是我添加的内容,数据库所在服务器127.0.0.1、用户名root、密码123456、数据库test、表tab,你可能需要修改这些内容。
网站名称:php读文件一行数据 php读取一行数据
当前网址:http://myzitong.com/article/heppcj.html