导航:首页 > 编程语言 > php读取大文件内容

php读取大文件内容

发布时间:2023-09-08 00:26:16

1. 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中的三行数据

2. php 使用file_get_contents读取大文件的方法

当我们遇到文本文件体积很大时,比如超过几十M甚至几百M几G的大文件,用记事本或者其它编辑器打开往往不能成功,因为他们都需要把文件内容全部放到内存里面,这时就会发生内存溢出而打开错误,遇到这种情况我们可以使用PHP的文件读取函数file_get_contents()进行分段读取。
函数说明
string
file_get_contents
(
string
$filename
[,
bool
$use_include_path
[,
resource
$context
[,
int
$offset
[,
int
$maxlen
]]]]
)

file()
一样,只除了
file_get_contents()
把文件读入一个字符串。将在参数
offset
所指定的位置开始读取长度为
maxlen
的内容。如果失败,file_get_contents()
将返回
FALSE。
file_get_contents()
函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。
应用:
复制代码
代码如下:
$str
=
$content=file_get_contents("2.sql",FALSE,NULL,1024*1024,1024);
echo
$str;
如果针对较小文件只是希望分段读取并以此读完可以使用fread()函数
复制代码
代码如下:
$fp=fopen('2.sql','r');
while
(!feof($fp)){
$str.=fread($fp,
filesize
($filename)/10);//每次读出文件10分之1
//进行处理
}
echo
$str;

3. php如何读取文本指定的内容

php读取文件内容:
-----第一种方法-----fread()--------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = fread($fp,filesize($file_path));//指定读取大小,这里把整个文件内容读取出来
echo $str = str_replace("\r\n","<br />",$str);
}
?>

--------第二种方法------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$str = file_get_contents($file_path);//将整个文件内容读入到一个字符串中
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>
-----第三种方法------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = "";
$buffer = 1024;//每次读取 1024 字节
while(!feof($fp)){//循环读取,直至读取完整个文件
$str .= fread($fp,$buffer);
}
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>
-------第四种方法--------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$file_arr = file($file_path);
for($i=0;$i<count($file_arr);$i++){//逐行读取文件内容
echo $file_arr[$i]."<br />";
}
/*
foreach($file_arr as $value){
echo $value."<br />";
}*/
}
?>
----第五种方法--------------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str ="";
while(!feof($fp)){
$str .= fgets($fp);//逐行读取。如果fgets不写length参数,默认是读取1k。
}
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>

4. PHP如何实现读取指定文件内的某些内容

这个文件,如果是用php 语法写的,你可以用include();将此文件包含进来,
这样的话,这里文件里面$index="132233123";
你就可以调用$index变量了
如果你写的只是一个文件话,建议你用以下方式进行判断
这个下面是我写的一个读取文件的函数,
function Read_Url($file_url){
$str="";
$handle = @fopen($file_url, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$str .= $buffer." ";
}
return $str;
fclose($handle);
}else{
Msg("文件无法打开");
}
}

5. php读取txt内容

<form action='' method="post">
输入字母:
<input type="text" name="cs">
<input type="submit">
</form>
<?php
//获取post值
$cs = empty($_POST['cs']) ? "" : $_POST['cs'];
//post值为空直接返回
if($cs==""){return '';}
//打开diqu.txt文件资源
$file = fopen("diqu.txt", "r") or exit("未找到文件!");
//逐行查找post传递的字符
while(!feof($file))
{
//如果找到post传递的字符就返回该行的值
if($val = strstr(fgets($file),$cs)){echo str_replace($cs,'',$val);return "";}
}
//关闭文件
fclose($file);
?>

阅读全文

与php读取大文件内容相关的资料

热点内容
推荐算法的使用 浏览:40
javaswing表格 浏览:470
sql和python处理excel 浏览:107
家用材料制作解压玩具 浏览:912
c盘解压失败可以用空间吗 浏览:465
3d循环音乐哪个app好 浏览:769
压缩文件zip怎么解压不了 浏览:392
如何看苹果appstore软件是否收费 浏览:463
android发送字符串 浏览:13
python3最好的书籍推荐 浏览:684
蓝牙模块与单片机连接 浏览:665
mssql命令大全 浏览:193
mpv服务器怎么样 浏览:599
服务器迁移后怎么恢复 浏览:249
在vfp中如何显示和隐藏命令 浏览:283
如何部署地图服务器 浏览:737
安卓系统云闪付哪个app好用 浏览:111
程序员一天完成几个需求 浏览:960
请运行命令来卸载oracle 浏览:243
知识问答哪个app好 浏览:398