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

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

掲示板は配布されているプログラムで↓テキストファイルはこんな感じ。
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. travel2 お名前:ホリデー大好きっ子 2019/2/17(Sun)00:36 MTIzLjIxOS4xNjEuMjA=
私はホリデーの無料バスツアー、大好きでいつも楽しみにしています。宝石も一つずつ集めていくのが楽しみです。バスの中では、色々なお菓子を用意してくれているし、運が良ければ食べ放題・・・おなかいっぱいで幸せです。そしてなんといっても、宝石店での時間2時間余りが少ないくらい~。お店の人がとても優しくて、気分よく買い物できます。このツアーのことを悪く言っている人がいるのが、とても悲しいです。無料なんだから、文句は言えないのでは?楽しく過ごすのなら、買い物するのが一番!買う気がない人たちと一緒にいるほうが、私まで気分悪くなってしまうので、こちらがご一緒遠慮したいです。

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

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

です。


3. tabelog お名前:通りすがり 2019/2/8(Fri)03:18 MjIxLjMwLjIxOS4xMzA=
またまた狂った店側の迷惑を何も考えず、馬鹿投稿を繰り返いしている女を発見しました。

ゴキブリだのハエだのまずいだのいろんな店を攻撃してます。

ここ2、3日で180件ぐらいの投稿してます。

まさに馬鹿!!

でもさすがにゴキブリだのハエだのは訂正されているみたいですけど、、、、。

参考までにリンクつけておきます。

馬鹿を拝見下さい。

投稿名:あすたん
https://tabelog.com/rvwr/009753714/

4. tabelog お名前:通りすがりの同業者 2019/1/12(Sat)20:41 MjIxLjMwLjIxOS4xMzA=
最近はgooglemapでの醜い口コミがはびこってますよ。

食べログと一緒でかってに口コミ、それもお店の悪口が横行しています。

食べログと違うのは口コミなしで1点の低評価だけでもお店の点数に反映されたり等、、、

もううんざりするシステムです、、、。

食べログはまだ国内の会社で、最悪みかじめ料(有料会員になる)とか、裁判ざたにするとかで
戦えますが、

googleは海外の会社というか天下のグーグル様なので削除どころか返事すらもらえないようです。

今はグルメ気取りのちゃんと対価もしはらわず、安い価格でサービスばかりねだるお客様?は
グーグルの口コミにこぞって移行しているみたいです。

どうぞご注意下さい。

5. tabelog お名前:料理人 2018/7/20(Fri)20:30 MjEwLjE3MC4yOC4yMjI=
グルメ気取って築地から~とか言ってるアホ
現地の田舎では肉魚野菜の鮮度と味が違い過ぎ築地で二流の質に落ちてる
規格内見栄え養殖とハウス物の野菜
食べログ高評価見て行った店などほんとに不味く全滅なくらいひどかった
これはいち料理人として正直な感想です

6. travel2 お名前:私もホリデーいったことある 2017/6/14(Wed)19:42 MTE4LjE2LjEyMC4zNQ==
こんにちは。
前に私も当選していってきました。宝石屋やバス内の物はナニも買わず、土産物屋で食べ物系だけ買ったのですが、本日別のとこで応募したのが当たったって葉書きましたw
ペイが少なそうな店でしか買わなかったのですが、また当たるとか、やっぱ年齢ですかねw

7. tabelog お名前:yano 2017/4/22(Sat)15:23 MTIxLjU4LjE4MS42NQ==
私も飲食店を経営してまして
とても共感できます

法律、理屈うんぬんではなく

単純に
食べログや当たり前に写真パシャパシャとって
投稿する輩に腹が立ってます

しかも食べログや口コミサイトなんて
書くやつもどーせ
身内や友達のやってる店には評価甘くなるんでしょ?

クソくだらない

口コミサイトなんて
なくなればいいです

8. tabelog3 お名前:匿名 2017/1/9(Mon)22:03 MTQuMTIuMTM1LjE2MA==
裁判で、コントロールする権限がないみたいなことを言われたらしいけど、裁判が間違っていると思います。 がきすぎる裁判だと思う。 コントロールとかまったく無責任な発言だと思います。
公の場でまずいと言われれば、営業妨害だと思う。公で言うことじゃない。裁判も焼きが回っているのでわ。
まずいと宣伝しているようなもの。それを、公で、本人にも言ってるんだから、言われた側が出てくるのは当然だと思います。
ただのいやがらせ。いやなラ来なければいいと思います。見ている側と、書いた側の意見しか反映されていない。書かれてる側の気持ちは全く考慮されていない。裁判に時代の幼稚さを感じます。

9. tabelog3 お名前:comment 2016/12/14(Wed)13:44 MjE5Ljk2LjQ2Ljc5
4travel(フォートラベル)というカカクコム運営で、食べログと同じ様に旅館やホテルを無断で掲載しているサイトがあるのですが、
口コミに加えブログ掲載する機能まであり、中には大浴場、建物の裏などのバックヤード、備品の型番をネットで検索して料金を記載した記事や写真までアップされてしまっている施設すらありますよ…。
何を目的としているのかわかりませんが、いつ誰が裸で入ってくるかわからない温泉や浴場にスマホ含むカメラを持ち込むなど、カカクコムは運営の質も低いですが、ユーザーの質も本当に下衆な方が多いですね。

10. tabelog3 お名前:けん 2016/10/28(Fri)23:34 MTEzLjM0LjEwMC4yMjc=
当店はとても小さな店で常連さんを中心に細々と展開しているお店なのですが食べログに良い評価ばかりがのる為通りすがりのお客様が増えて困っており、削除依頼を何度もしているのですがしてもらえません。仕方ないので最近会員制のお店にしたのですがそれでも削除をしようとしない悪質な業者です。なんとかできないものでしょうか。

コメント67

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

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

TOPへ戻る