やったこと

webサービスを作るときに考えたことを垂れ流します

このブログについて

absgといいます。webサービスのこととかいろいろ書いてます。■最近作ったサイト ・全国で発生した事件のデータベース「地域の事件簿」 ・みんなでなかよく政治の話!「なかよし討議!」 ・女子のつぶやきまとめ「Twiggy×Twiggy!」 ・ツイッターバトラーズ!…

【Javascript】Barba.jsで埋め込みツイートが表示されないぞ!

Pjaxの技術を使って動的に画面遷移ができる「Barba.js」この「Barba.js」を使って埋め込みTweetを張り付けたページを読み込むと、うまく表示してくれんとです・・。 どうも埋め込みツイートというのは、動的に生成した場合は「Load()」を実行してケツを蹴り…

【PHP】次の時刻(0分)をUnixタイムスタンプで求める計算式!

PHPで「次の時刻」をUnixタイムスタンプで計算する方法です!つまり、「13:30」のときは「14:00」を返す、「13:59」のときは「14:00」を返す、「14:01」のときは「15:00」を返す…。 といった処理です! date_default_timezone_set('Asia/Tokyo'); $now = tim…

【Wordpress】カスタムフィールドの存在確認チェックは要注意!

ワードプレスの「get_post_meta()」という関数がありますよね・・?記事のカスタムフィールドの値を取得するための関数です。この関数で、存在しないカスタムフィールドを取得したときの戻り値をチェックするとき、要注意が必要です。戻り値には「null」では…

【Wordpress】cssの画像トリミングが縦に伸びてしまってうまくいかない!

cssだけで画像を切り抜いてうまく枠内に収めてくれるテクニックってありますよね?下記サイトなどで紹介されている便利な方法です。 CSSだけで画像トリミングできたよ | Tips Note by TAMこの「高さに合わせてトリミング」をする方法をやってみたんですが、…

【Wordpress】gooブログのRSSがワードプレスから取得できない!

ワードプレスの「fetch_rss()」関数でいろんなブログのRSSを取得していたんですが、なぜか「gooのブログ」だけは取得失敗してしまう…。噂によると、gooブログはアクセス元のユーザーエージェントをチェックしていて、ワードプレスからのアクセスを弾いてしま…

【PHP】「Simple HTML DOM Parser」で2chのスレが読み込めないぞ!

HTMLの解析ができる便利なPHPライブラリ「Simple HTML DOM Parser」これを使って2chのスレを読み込もうとしても、戻り値がfalseで返って失敗してしまうときがあります。これは何故かというと、「Simple HTML DOM Parser」には読み込みサイズの上限値(600KB)…

【HTML・CSS】画面ロード時に画像表示がちらつく問題!

とても初歩的なミスの話です・・。Webサイトのページを開くときに、画像ファイルのサイズが定まらず、一瞬だけパッとでっかく表示されてしまう。これはなぜかというと、cssの記述の仕方が悪かったから・・。下記のようにcss記述を body 下部に書いていると、…

【PHP】Simple HTML DOM Parserでツイッターカードのimageを読み込む!

Simple HTML DOM Parserでお目当てのサイトの「Twitterカード情報」を読み取って、アイキャッチ画像を抜き取るよ!コードは以下の通り! require_once('./simple_html_dom.php'); //お目当てのサイトのHTMLを取得 $html = file_get_html("http://hogege.com/…

【PHP】TwitterOauthでレスポンスコードを見てエラーを検出!

PHPでTwitterAPIを利用するための便利なライブラリ「TwitterOauth」API接続時のエラーを検出するには、以下のように「getLastHttpCode()」の値を確認すると良いです。 レスポンスコード200番は成功の証なので、これをチェックします。 require_once("./tw…

【Wordpress】wp_remote_get()で取得したコンテンツが画像かどうか判定!

ワードプレスのwp_remote_get()関数で取得したHTTPリクエストの中の「content-type」をチェックして、コンテンツが画像ファイルかどうかを判定します。wp_remote_get()の戻り値の中には、こんな感じヘッダ情報が含まれています。 ↓ [data:protected] => Arra…

【WordPress】データベース操作クラス「$wpdb」のエラー判定の方法!

ワードプレスでDBを操作するときに「$wpdb」って使いますよね? 「$wpdb->insert()」とか「$wpdb->update()」とか「$wpdb->delete()」みたいなあの処理です。この実行結果のエラー判定をするときは「$wpdb->last_error」の中を見ると良いです。コードは下記…

【javascript】モバイル画面で慣性スクロール中に画面をピタッと止める方法!

モバイルで、画面を縦にスクロールすると、慣性がついてスルーッと移動しますよね。あれを、移動中にピタッと止める方法です。下記のサイトでかなり無茶な方法で実装しています。 https://jsfiddle.net/prud/umr0qegs/基本的なコードは以下のような感じ(jQue…

【PHP】Safariアクセス時にURLをゲットすると日本語エンコード部分が大文字になっている!

先ほどちょっといやな現象に悩まされてしまいました・・。iPhoneの「Safari」でPHPサーバにアクセスをして、サーバ側で「$_SERVER」を参照して、ページのURLを取得したんです。コードは以下のような感じ。 $current_url = (is_ssl() ? 'https' : 'http') . '…

Safariで上部固定のメニューバーがうまく表示されない!

画面スクロールに追随して、上部に固定表示されるメニューバーってありますよね?あれを作成してみたんですが、「ウィンドウズ用Safari」のブラウザでうまく表示されなくて、困ってしまいました。メニューのフレーム自体はちゃんと上部に固定表示されるんで…

Barba.jsで指定したページをプリロードする!

Pjaxを使ってゴリゴリと画面遷移するページが作れる便利なライブラリ「Barba.js」このBarba.jsで、指定したURLのページをプリロードしてキャッシュさせる方法です!下記のようなコードでできます! //読み込むページのURL var url = "http://hogege.com/page…

【PHP】Simple HTML DOM Parserでゲットした要素が目当てのclassを保持しているか確認!

HTMLの要素を操作できる便利なDOMパーサ「PHP Simple HTML DOM Parser」これを使ってゲットしたDOM要素が、お目当てのclassを保持しているかどうかを確認する方法です。 //ライブラリ読み込み! require_once ('/simple_html_dom.php'); //テスト用のHTMLを…

ツイッターAPIの仕様変更、急にログインができなくなったゾ!

先日、我がサイトのTwitterログイン機能が急に使用不能になってしまってあせりました・・。Twitter APIが下記のようなエラーを返して認証を受け付けてくれなくなってしまいました・・。 "code":415,"message":"Callback URL not approved for this client ap…

【PHP】ライブドアブログに「AtomPub API 」使って記事投稿・画像投稿!

PHPを使ってライブドアブログに記事を投稿する方法です!「AtomPub API 」というのを使ってリモートのサーバーから投稿します! 投稿処理には「HTTP_Request2」が必要なので、あらかじめサーバーにインストールしておいてください! ↓ HTTP_Request2のインス…

skypeでいきなり「チャットはご利用いただけません」と表示されチャットできなくなった!

先日Skypeでチャットをしていたら、いきなり入力欄に「チャットはご利用いただけません」と表示されて、チャットが不能になってしまいました・・(Windows版のスカイプです)つい昨日までは当たり前のように使えていたのに、今日PCを起動したらこのような…

JavascriptでURLエンコードした文字列がPHPでデコードできない!

タイトルそのままの不具合です・・。javascript側でURLエンコードした文字列がPHP側でデコードできない・・。javascript側では「escape()」という関数でエンコードしました。 そして、PHP側では「urldecode()」という関数でデコードしました。 でも、これで…

Font Awesomeを使ってツイッターのアイコンを作る!

いろんなWebアイコンフォントが無料で使える便利なライブラリ「Font Awesome」を使って、ツイッターの青い鳥のアイコンを作ってみましょう。①ライブラリの読み込み! まずはFont Awesomeのcssのライブラリを読み込みます。下記ページのCDNで提供されているも…

【PHP】AWSでhtmlをphpとして実行したいんだけどできない!

この前借りたAWSサーバーで「index.html」というページを「index.php」として実行したかったんですが、なかなか設定がうまくいきませんでした・・。(ちなみにPHPのバージョンは5.6です・・)これをやるときの典型的な方法は「.htaccess」に以下のような設定…

【CakePHP3】APIを作ろうとしてエラーが出て混乱の極み…。

CakePHP3でAPIを作ろうと思ってちょっと苦労をしてしまいました・・。クライアンからajaxでリクエストを送ると、なにかデータを返してくれるという簡単なものを作ろうとしたんですが、 CakePHPのエラーログに「Controller action can only return an instanc…

【PHP】ツイッターのテキスト内の「@ユーザー名」の文字列を削除する!

PHPの正規表現置換関数「preg_replace」を使ってつぶやきテキスト内の「@ユーザー名」を削除する方法です。コードは以下のような感じ。「@hogehoge(+空白)」や「@fagafaga(+空白)」の文字列を置換によって削除します。 $test_str = "@hogehoge @fagafaga ツ…

グーグルマップのウィンドウにFacebookのボタンを動的追加すると画面がずれる!

すっごい細かい問題に直面してしばらく悩んでしまいました…。グーグルマップのマーカーをクリックしたときに開かれる「インフォ・ウィンドウ」ってありますよね…。あのウィンドウが表示されたあと、その内側に「Facebookのシェアボタン」を動的に追加する処…

【Javascript】マーカークラスタが「greedy」モードのときクリックが効かない!

さいきん大島てるさんのような、グーグルマップ上に情報を表示するサイトを作っているんですが、どうもマーカーのクラスタリング処理に不具合らしきものを見つけてしまいました・・。クラスタリング処理とは、地図上にたくさんマーカーがあるときにまとめて…

【PHP】ツイッターAPIから得たつぶやき時刻と現在時刻の差分をとる!

Twitter APIで取得したつぶやき時刻「created_at」と現在時刻の差分を計算してみます。 created_atの内容をいったんUNIX時間に変換してから、現在のUNIX時間と差分をとっています。 この結果を3600で割り算をすると、経過時間(時)を計算することができます…

【PHP】TwitterのURLからアカウント名を正規表現で抜き出す!

ツイッターのURLの中にあるアカウント名の文字列を、PHPの正規表現(preg_match)によって取得する方法です。つまり、「https://twitter.com/hogege/status/1234567890」とか、「https://twitter.com/hogege/」というURLの中の「hogege」の部分を抜き出すと…

【PHP】DB操作ライブラリ「idiorm」で最大IDのレコードを取得する

データベースを操作するためのPHPライブラリ「idiorm」で一番IDが大きなレコードを取得するときの方法です。コードは以下。 require_once("./idiorm.php"); ORM::configure('sqlite:データベースのパス'); ORM::configure('id_column', 'DBの主キーの名前');…