首先fopen读取TXT文件,获取一个文件指针,然后fgets获取一行,再fgets继续读取下一行
专注于为中小企业提供成都做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业松溪免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
官方例子:
?php
$f = fopen ("fgetstest.php", "r");
$ln= 0;
while (! feof ($f)) {
$line= fgets ($f);
++$ln;
printf ("%2d: ", $ln);
if ($line===FALSE) print ("FALSE\n");
else print ($line);
}
fclose ($f);
这个前提是你的$f这个文件指针不能关闭,如果你想在不同请求的情况下实现,那就要吧$f做全局存储了,看看存session可否(我没做过,不确定,你试试看)
如果直接使用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);
$dir = "你的文件名称";
if(file_exists($dir)) {
return file($dir);
}
第一步,读取txt的文件。假设为a.txt
$content = file_get_content('a.txt'); //读取文件内容存入变量。
第二步,存入数据库
mysql_query("insert 表名 (字段名) values('".$content."'));
Ps:文件是上传的,上传后的临时文件名是:$_FILE['tmp_name']
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);
?
生成链接时加入file_put_contents('A/'.$_GET['id'].'.txt','0');
访问B站时加上
$count=(int)file_get_contents('A/'.$_GET['id'].'.txt');
$count++;
file_put_contents('A/'.$_GET['id'].'.txt',$count);
其它的数据有效性验证,B的权限自己加上判断扩展吧