重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
php读取文件内容:
十载的东兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整东兴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“东兴网站设计”,“东兴网站推广”以来,每个客户项目都认真落实执行。
-----第一种方法-----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;$icount($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;
}
?
/**
* 获取指定行内容
*
* @param $file 文件路径
* @param $line 行数
* @param $length 指定行返回内容长度
* $c = getLine('./a.txt', 10); // 读取a.txt文件第10行内容 echo $c;
*/
function getLine($file, $line, $length = 4096){
$returnTxt = null; // 初始化返回
$i = 1; // 行数
$handle = @fopen($file, "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, $length);
if($line == $i) $returnTxt = $buffer;
$i++;
}
fclose($handle);
}
return $returnTxt;
}
如果文件不是太大的话,可以这样写:
?php
$arr=file('a.txt'); //文本文件,请修改合适的名字和位置
$n=count($arr);
for ($i=0;$i5;$i++) echo $arr[rand(0,$n)]."br';
?
如果直接使用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
$file_path="text.txt";
$file=fopen($file_path,"r");
$file_size=filesize($file_path);
$text_content=fread($file,$file_size);
$mode="/(?=\|).*(?=\|)/U";
preg_match_all($mode,$text_content,$arr);
$n=count(explode("\n","$text_content"));
$line=explode("\n","$text_content");
$n=count($line);
$text_content_new="";
for($i=1;$i=$n;$i++){
$an=25*$i-15;
echo "第".$i."行为:".$arr[0][$an]."br";
$text_content_new.=str_replace($arr[0][$an],$arr[0][$an]*3,$line[$i-1]);
}
$save_path=date("Y-m-d",time()).".txt";
$save_file=file_put_contents($save_path,$text_content_new);
?
把这个文件放在PHP文件相同目录,每一行都要回车,不然不准确。
针对你的追问,我不太你表达的意思,你的意思是把截取出来的数据乘以3之后替换了原来的数据然后保存为一个新的文件吗?如果这样的花完全可以实现啊
现在这段代码是可以生成乘以3的文件了。看看适不适合你!鉴于这个问题是没分的,所以我也只能回答到这里了,希望能帮到你。