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

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

掲示板は配布されているプログラムで↓テキストファイルはこんな感じ。
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. tabelog お名前:料理人 2018/7/20(Fri)20:30 MjEwLjE3MC4yOC4yMjI=
グルメ気取って築地から~とか言ってるアホ
現地の田舎では肉魚野菜の鮮度と味が違い過ぎ築地で二流の質に落ちてる
規格内見栄え養殖とハウス物の野菜
食べログ高評価見て行った店などほんとに不味く全滅なくらいひどかった
これはいち料理人として正直な感想です

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

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

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

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

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

クソくだらない

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

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

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

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

7. comment お名前:あん 2016/10/11(Tue)10:56 MTA2LjE1NC4xMDkuMTg2
私も食べログを初めとするレビューサイトは嫌いです。
接客や味が気に入らないからといって酷評(笑)をする自称評論家。
何様なのでしょうか。
良いことも悪いことも相手の顔を見てはっきり伝えるべきだと思います。

そのお店が繁盛すれば「私の評価のおかげ」
そのお店が閉店すれば「私はアドバイスしてあげたのに」

相手にするのも馬鹿馬鹿しい。

8. tabelog3 お名前:いち客人 2016/8/30(Tue)19:05 MTE0LjE4OC4xMTAuMTg3
私は飲食店にとっては客側の者ですが、食べログなんてものは全く信用していません。
だいたい、あんなところでグルメ評論家ぶってる暇人の戯言など、読むだけ時間の無駄ですから。
それと、外食時に食べログやブログ、ツイッターやFacebookに載せるためか知りませんけど、あほ面晒してスマホでパシャパシャやってる連中がいると、本当に不愉快です。
いいから黙って食ってろと思いますね。

9. tabelog お名前:反食べログ 2016/3/20(Sun)20:43 MTExLjEwNy45MS4xODA=
アンフェアですよね、店側は住所店名(時には氏名も)電話番号も公開されているのに書き込む側は全くの匿名ですから。
書き込んだ人を評価してみたいですよ、その人がどんな職場でどんな働き方をしているのか。
表現の自由があるなら評価されたくない自由もあるはずだと思います。
ブロガーも似た者で、名古屋にランディとかいうレストランの人気ブロガーがいますが自身レストラン経営を失敗しておいて他店を
ものすごい上から目線のコメントで評価してるのがなんも不愉快です。しかも高級店では昼の安いランチを食べてその店の全てを見切ったような書き方ですから呆れます。

お店の皆さん、本当に美味しくて心からのおもてなしをされていれば本当の口コミでいいお客様がまたいいお客様を紹介して下さりますから負けずに頑張って下さいね!

10. tabelog お名前:nuka 2016/3/20(Sun)00:40 MTgwLjMwLjIxMC41OQ==
食べログ様への掲載は許可しておりません。という文言とともにアルファベットの羅列等で荒らされているページがあったから「何じゃこりゃ?」と思って調べてみたらこういう事だったんですね。
まさか許可をとらずに掲載しているとは思いませんでした。
しかし、そう言われてみると確かにホットペッパーと比べると店ごとの店舗情報(口コミではない)の差が大きいし、そもそも掲載されている事も知りませんなんて人も多いでしょうね。
正直、「長崎人好みの味でまずい」というレビューを見て以来、食べログのレビュアーにはむかついてましたし、これを機に食べログを使うのをやめます。
いくら店側が抗議しても便利だからという理由で食べログを使い続ける人が減らなかったら問題は解決しないと思いますので。

コメント63

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

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

TOPへ戻る