ホームページ > バックエンド開発 > PHPチュートリアル > PHPはTXTの内容を行番号順に読み込みます。

PHPはTXTの内容を行番号順に読み込みます。

WBOY
リリース: 2016-06-23 13:46:32
オリジナル
1585 人が閲覧しました

txt ファイルの各行に IP が保存されます
リクエストは別のコンピューター経由で行われ、各リクエストは行番号順に読み取られます
これをどのように記述するか?


ディスカッションに返信します

別のコンピューター経由でリクエストを呼び出すとは何ですか?

わかりません。一度に 1 行ずつ読みますか?

異なるコンピュータを介したリクエストとは何ですか?


3 台以上のコンピューターが同時に txt の内容を読み取る必要がある可能性があります。異なるコンピューターが同じ IP アドレスを読み取るのではないかと心配しています。一度に 1 行ずつ読みますか?

最初のリクエストは最初の行の IP を読み取り、2 番目のリクエストは 2 行目の 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 コード

$conts = file_get_contents($filename);

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


申し訳ありませんが、私は初心者なので、このファイルはエージェントのどこに置くべきですか?パス>?

ポスターの意味を誤解しました。#4 タスクの要件を更新しました。 ! !


5 階の返信からの引用:

元の投稿者によると:

PHP コード

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

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

ただし、 #4 と同じ 要件が異なります。他の専門家を待って、先に食べてください!

6 階の返信からの引用:

5 階の返信からの引用:

元の投稿者によると:

PHP コード


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


警告: file_get_contents(a.txt) [function.file-get-contents]: ストリームを開けませんでした: E:hostbendia.comip.php の 9 行目にそのようなファイルまたはディレクトリはありません
このプロンプトは、私のパスが間違っていますか?



1 階の回答からの引用:

異なるコンピューターを介してリクエストとは何ですか?

3 台以上のコンピューターが同時に txt の内容を読み取る必要がある可能性があります。異なるコンピュータが同じ IP を読み取るということ


心配です。異なるコンピュータは同じ IP を読み取りますか? では、コンピュータは 1 を読み取り、コンピュータは 2 を読み取り、コンピュータは 3 を読み取りますか?



警告: file_get_contents(a.txt) [function.file-get-contents]: ストリームを開けませんでした: E:hostbendia.comip.php の 9 行目にそのようなファイルまたはディレクトリがありません

この状況には 2 つの問題があります:
1. パスが間違っています。
回答-> Linux: $filename="/a.txt"; 2. ファイルには読み取り権限がありません。
回答-> Linux: chmod 0777 /a.txt

3階の回答より引用:


1階の回答より引用:

異なるコンピュータを介したリクエストとは何ですか?

3 つ以上のコンピューターが同時に txt の内容を読み取る必要がある可能性があります。異なるコンピューターが同じ IP アドレスを読み取るのではないかと心配ですか?コンピューターに読み取ってもらいたいですか? 1 b コンピューターが 2 を読み取ります。

データベースにアクセスします


そうです。

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート