> 백엔드 개발 > PHP 튜토리얼 > php按行数顺序读取TXT里面的内容

php按行数顺序读取TXT里面的内容

WBOY
풀어 주다: 2016-06-23 13:46:32
원래의
1586명이 탐색했습니다.

txt文件里面每行都保存了一个IP
现在通过不同的电脑请求,每次请求按行数顺序读取.
这个要怎么写?


回复讨论(解决方案)

什么叫通过不同的电脑请求?

没看懂。每次读一行?

什么叫通过不同的电脑请求?



就是有可能 三台或者多台电脑 同时需要读取txt里面的内容,担心不同的电脑读取的ip一样

没看懂。每次读一行?



第一次请求 读取第一行的ip,第二次请求,读取第二行的ip,这样一直下去

按照楼主的意思:

$conts = file_get_contents($filename);$arrConts = explode("\n",$conts);foreach($arrConts as $cont){	$pos = strpos($cont,$_SERVER['REMOTE_ADDR']);	if($pos === false)		continue;	else		echo "This ip:".$cont;}
로그인 후 복사

按照楼主的意思:
PHP code

$conts = file_get_contents($filename);
$arrConts = explode("\n",$conts);
foreach($arrConts as $cont){
$pos = strpos($cont,$_SERVER['REMOTE_ADDR']);
if($pos === false)
……




不好意思呀,我是新手,那我那个a.txt文件 放在根目录里,这个代理里面哪个地方放这个文件路径>?

我理解错楼主的意思了,#4更新了任务需求!!!

引用 5 楼 的回复:

按照楼主的意思:
PHP code

$conts = file_get_contents($filename);
$arrConts = explode("\n",$conts);
foreach($arrConts as $cont){
$pos = strpos($cont,$_SERVER['REMOTE_ADDR']);
if($pos =……


$filename = "/root/a.txt";

不过和#4要求有差别,等等其他高手,吃饭先!

引用 6 楼 的回复:

引用 5 楼 的回复:

按照楼主的意思:
PHP code

$conts = file_get_contents($filename);
$arrConts = explode("\n",$conts);
foreach($arrConts as $cont){
$pos = strpos($cont,$_SERVER['REMOTE_ADD……




Warning: file_get_contents(a.txt) [function.file-get-contents]: failed to open stream: No such file or directory in E:\host\bendi\a.com\ip.php on line 9
这个提示是不是我的路径写错了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><?php$filename = "/a.txt";$conts = file_get_contents($filename);$arrConts = explode("\n",$conts);foreach($arrConts as $cont){    $pos = strpos($cont,$_SERVER['REMOTE_ADDR']);    if($pos === false)        continue;    else        echo "This ip:".$cont;}?><body></body></html>
로그인 후 복사

引用 1 楼 的回复:

什么叫通过不同的电脑请求?


就是有可能 三台或者多台电脑 同时需要读取txt里面的内容,担心不同的电脑读取的ip一样



担心不同的电脑读取的ip一样? 那你是要a 电脑读取1 b电脑读取2 c 电脑读取 3?
上数据库吧.

Warning: file_get_contents(a.txt) [function.file-get-contents]: failed to open stream: No such file or directory in E:\host\bendi\a.com\ip.php on line 9


这种情况出现的问题有两种:
1、路径不对;
Answer-> Linux:$filename="/a.txt";(如楼主说的根目录)
2、文件没有读取权限。
Answer-> Linux: chmod 0777 /a.txt

引用 3 楼 的回复:

引用 1 楼 的回复:

什么叫通过不同的电脑请求?


就是有可能 三台或者多台电脑 同时需要读取txt里面的内容,担心不同的电脑读取的ip一样


担心不同的电脑读取的ip一样? 那你是要a 电脑读取1 b电脑读取2 c 电脑读取 3?
上数据库吧.



是的 是这个意思


$num = 0;if(file_exists('count.txt')) $num = file_get_contents('count.txt');$ar = file('ip.txt');echo $ar[$num++];file_put_contents('count.txt', $num, LOCK_EX);
로그인 후 복사
로그인 후 복사

PHP code
$num = 0;
if(file_exists('count.txt')) $num = file_get_contents('count.txt');
$ar = file('ip.txt');
echo $ar[$num++];
file_put_contents('count.txt', $num, LOCK_EX);



高手这个方法很巧

很明显涉及到并发访问问题,要么用文件锁,要么用数据库事务,否则都无法保证原子性。

$num = 0;if(file_exists('count.txt')) $num = file_get_contents('count.txt');$ar = file('ip.txt');echo $ar[$num++];file_put_contents('count.txt', $num, LOCK_EX);
로그인 후 복사
로그인 후 복사



这段代码什么意思呢,是要自己建立一个count.TXT文件来计数,然后才能依行读取IP.TXT的内容吗。

直接输出的就是IP?能不能把IP提取发送啊  新手求教。。http://bbs.csdn.net/topics/390919386?page=1
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿