php按行數順序讀取TXT裡面的內容

來源:互聯網
上載者:User
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;elseecho "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
這個提示是不是我的路徑寫錯了
無標題文檔

引用 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
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.