テキストファイルを読み込んで自動表示する

浪花の居酒屋掲示板の最新投稿がホームページや他のページでもリアルタイムで表示されればいいな〜と思ってプログラムを組んでみた。
表示されてるのは現在麺飯浪花のトップページサイトマップ。右サイドに最新投稿が表示されるから見てね!
参考になる箇所があれば幸いですが、店主の備忘録です。

掲示板は配布されているプログラムで↓テキストファイルはこんな感じ。
100件ごとに自動的に新規のテキストファイルが連番で作成されます。

566<>0<>居酒屋掲示板に投稿<>姫<><>1386911557<>天ぷらついでに…筍も磯辺揚げで出てきたよん☆ミ<br>口に含んだときのふわっと磯の香りに甘味♪いい感じ!!<br>1つリクエスト!香川県独特の、もったいなから揚げちゃおうよ天ぷら!<br>筍を甘めに土佐煮にして、汁ごと天ぷらであげちゃう味付け天ぷら☆ミ<br>これが大好きで!!<br>またつくってもらっちゃお〜っと♪<br>よろしくねん!<>$1$abcd...<>abcd...<>abcd...<>0<><><>0<><><>

<>で区切って判定してます。(後半は端末情報などなので伏せました。)

ソース&解説メモ

<?php
$lineArray=array();//記事の配列定義
$n=0;//行数
$file_pre='..root/data/archive';//テキストファイルのあるとこの前半部分
$icnt=0;//file№カウント用
$filename='';//$filename(合体したファイル名が入る変数)を空にしておく
//1から順にファイルの有無をチェック↓
for (;;){
$icnt=$icnt+1;//まず$icntに1足す。戻ってきたときにも1足す。
if (file_exists($file_pre.$icnt.'.txt'))//『file_pre+$icnt』というファイル名が存在するとき
{
$filename=$file_pre.$icnt.'.txt';}//$filenameに代入して戻る
else{ break;}
}//ファイル名が存在しなければbreak

if (file_exists($filename)) {
} else {
echo $filename.'<br>';
exit;
}//判定したファイルが存在しなかった場合には$filenameの内容を表示(error回避)

$file=fopen($filename,'r');//$filenameを読み込み専用で開く
flock($file,LOCK_SH);//ロックする
while (!feof($file))//行末までぇ〜1行単位でぇ〜と指定
{
$line=fgets($file);//$lineに内容を代入
$line= explode("$1$","$line", 2);//$1$以下消す
$line = str_replace("<><>1", "<>\n", $line);//見栄え処理
$line = str_replace("<>", "‡", $line);//見栄え処理
$line = str_replace("‡0‡", " ", $line);//見栄え処理
$line = str_replace("‡", " ", $line);//見栄え処理
$line = str_replace("<br>", "\n", $line);//見栄え処理
$line = str_replace(">>", "⇒", $line);//見栄え処理
$line =preg_replace('/[0-9]{9}/', '', $line);//9桁の数字を消す
$n++;//カウントプラスワン〜
array_push($lineArray,$line[0]);//$lineArrayにpush
}
//読み込みループ終わり
//最新5記事表示(※後述)
for($a = 2; $a < 7; $a++) { if ($n>=$a){ echo nl2br(mb_strimwidth(htmlspecialchars($lineArray [$n - $a]).'<br /><hr>',0,300,'<a href="http://network.n-apc.com/bbs/bbs.php" rel="nofollow">…(bbs)</a><br /><hr>'));
}else{
break;}
}

flock($file,LOCK_UN);//ロックを解除
fclose($file); //ファイルを閉じる
//作・浪花くん|監修・姫の付人(師匠)
?>

とりあえず不具合なく動作してますが、次のファイルに移った時の挙動はまだ未確認。

最後の最新記事表示部分は分解してみます。
for($a = 2; $a < 7; $a++)
$aに初期値2を設定して+1のループを6まで繰り返す。
(2から始まるのはテキストエリア末行に改行が発生するための処置)
if ($n>=$a){..}else{break;}
行数$nより表示記事数$aが大きいか同じであった場合にはbreak。
(テキストにコメントが3件しかない場合には3件表示して終わり)
echo nl2br(mb_strimwidth(htmlspecialchars($lineArray [$n - $a]).'<br /><hr>',0,300,'<a href="http://network.n-apc.com/bbs/bbs.php" rel="nofollow">…(bbs)</a><br /><hr>'));
ごちゃごちゃしてますが、
$lineArray [$n - $a]を呼び出す。
内容を300字で切ってケツに掲示板へのリンクくっつける。
タグを無効化(mb_strimwidthの前に実行)
テキスト改行を<br />に変換。
表示する。
ループで最大行数$nから$a←2.3.4.5.6と順に引いていくので最新投稿順に表示される。

そんな感じで・・


関連記事:
タイピング練習無料サイト集 打鍵サイト集めてみた。タイピング記録サイトで日々精進!
アクセスとサイトのイメージ アメブロとか平均アクセスとかアナリティクスとか黒いブーツとか・・
ブログタイトルの重要性
文字コードで発狂寸前
文字エンコーディングを変換する
お取り寄せフォームつくった
緩めのスパム投稿対策プログラム
PHP・ブログ自動投稿プログラム
PHP・サンプルソースエロエロ

SEO・プログラムに関する記事一覧



最終更新日 H25/12/14
麺飯茶家浪花
香川県高松市林町1511-1


記事にコメントを投稿できます。

お名前:

コメント:



コメント新着10件 (リンク先の記事に対してのコメントです)


1. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

2. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

3. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

4. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

5. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

6. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

7. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

8. tabelog3 お名前:店主 2019/8/4(Sun)15:55 NTkuMTU2LjcyLjE5OA==
食べログの評価を評価するサイト、ぜひ作って下さい!
私も同じこと考えていました。
全国の同志たちでさぞかし盛り上がることでしょう(*^_^*)/

9. travel2 お名前:ホリデー大好きっ子 2019/2/17(Sun)00:36 MTIzLjIxOS4xNjEuMjA=
私はホリデーの無料バスツアー、大好きでいつも楽しみにしています。宝石も一つずつ集めていくのが楽しみです。バスの中では、色々なお菓子を用意してくれているし、運が良ければ食べ放題・・・おなかいっぱいで幸せです。そしてなんといっても、宝石店での時間2時間余りが少ないくらい~。お店の人がとても優しくて、気分よく買い物できます。このツアーのことを悪く言っている人がいるのが、とても悲しいです。無料なんだから、文句は言えないのでは?楽しく過ごすのなら、買い物するのが一番!買う気がない人たちと一緒にいるほうが、私まで気分悪くなってしまうので、こちらがご一緒遠慮したいです。

10. tabelog お名前:通りすがり 2019/2/8(Fri)03:46 MjIxLjMwLjIxOS4xMzA=
訂正です。

投稿名:あすたん(間違い)→あすんたん

です。


コメント75

全部見る(100件まで表示)

管理人へのコンタクトはお店に遊びに来ていただくと喜び〜です。
(遊びに来れない人はからメールを送れます。)
管理人の独学での検証・考察を記事にしておりますので、間違った解釈があった場合にはご指摘いただくとなお喜び〜です。

TOPへ戻る