画像掲示板プログラムの修正

画像掲示板の泉が荒らしを受けているといった話を先日ご紹介しました。

あれ以来、画像掲示板プログラムの修正を続けていましたが、突貫で作って放置していたプログラムなだけに、まともに動かなかったり、最初から全く機能していなかった部分も多数見つかりました。

YouTubeやニコ動貼り付けの不具合

特に不具合が目立ったのは、YouTubeとニコニコ動画の動画IDを投稿URLから抽出し、掲示板に貼り付けをするあたりでした。どうやらYouTube側、ニコニコ動画側の仕様変更があったこともあり、全然うまく動いてはいなかったようです。

imgbbs_dtn_2012.gif
当時の画像掲示板の泉ロゴ。目のロゴは怖いのでやめました。。

動画IDの抽出

YouTubeやニコニコ動画の動画URLにはパラメータが山ほどくっついていますが、そこから動画IDだけ抜き取らなければいけないので、これが少々厄介ではあります。

掲示板へ貼り付けする際、『sm00000000』や『v=XXXXXXX0XXX』といった動画ID部分を手できちんと切り取って入力するのは手間ですし、1文字間違えたら別の動画になってしまうので、正直運用には耐えそうにありません。

そこで、正規表現を使ってID抽出をやってみましたが、正規表現がいまいち慣れないので結構苦戦をしてしまいました。結果、あれこれやってこんな形にしたらうまく動きました。

YouTubeの場合はこのような感じ。

//YouTube
preg_match('@[&?]v=([^&]+)|be/(.+)$@',$URL, $match);
$movieaddr = $match[1];  //こちらは配列の[1]に

ニコニコ動画の場合は一旦URLから?以降を切り出した上、このような感じにしてあります。

//ニコニコ動画
$URL = preg_replace('/\?.*/','',$URL);	//?以降を先に削除
preg_match('/[a-zA-Z0-9]{8,10}$/',$URL, $match);
$movieaddr = $match[0];  //こちらは配列の[0]

抽出動画IDを使った掲示板埋め込み

動画IDをプログラムで正確に抜き取りができれば、掲示板のHTMLで表示をさせるのはIDはめ込んだコードを置くだけなので超簡単でした。下記のように縦横サイズも指定ができてしまいます。

$YouTube = ' embed src="http://www.youtube.com/v/' . $動画ID . '" type="application/x-shockwave-flash" wmode="transparent" width="横サイズ" height="縦サイズ" '

おわりに

サイト側で仕様の変更があったら即ダメになるでしょうが、とりあえず今のところは動いていそうです。サーバートラブルの影響もあり、アクセス数は減る一方の掲示板となり残念ですが、荒れた掲示板をメンテナンスし続ける手数もないので、しばらくは人がいない掲示板で置いておこうと思います。

PHPが学べるおすすめプログラミングスクール

この運営ブログをみて、もしdtn.jp管理人のようにサイトをゼロから作ってみたいという思いに駆られた方は、サイト開発やプログラミングをオンラインで受講できるプログラミングスクールの活用をしてみてはいかがでしょうか。サーバ/WordPress/HTML/CSS/JS/PHP/SQLなどの基本さえ分かれば、ゼロからサイト立ち上げもポンポンできるようになって、今なら仕事や転職にも役立つのでオススメです。

PHPも学べるオンラインスクール

  • CodeCampAWS Cloud9を使ったクラウド上のIDEが用意されているので、ネットにつながればスタート開始可能というゴージャスなスクールです。講師も選べて、Webマスターコースならプログラミング経験0でも一気にフロントエンドからバックエンドまでマスターできます。
  • ウェブカツJava言語やRuby言語なんぞ教えん!という、初心者にありがちな挫折ポイントがよく分かってるスクールです。フロントエンドエンジニアに必要なスキルセット&PHPがマスターできます。
  • フリークス HTML/CSSから始まり、MySQLやLinuxからPHPの変数や分岐やループ、クラスやPDOに最後はMVCまで教えてくれるので、そこまで分かればなんでもできそうです。メンターに質問もし放題がいいですね。
  • テックアカデミー法人のIT研修もやってる業界最大手・受講者数No.1のスクールです。メンターとの定期オンライン面談やチャットサポートなどもあり、大手ならではインフラ環境がウリです。PHPと合わせてjQueryもマスターできる、PHP/Laravelとフロントエンドコースがおすすめです。

オンラインスクールのデメリット

孤独になりがちなサイト制作も、優しいメンターがそばにいてくれれば凄い楽しそうですが、もちろんデメリットもあります。お金がかかるという点です。ひたすらググって、本を読んでよりは確実にコストがかかってしまいます。とはいえ、多少の余裕があるなら、こんなご時世なので時間と労力を買った方が良いと思います。