やったこと

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

このブログについて

absgといいます。webサービスのこととかいろいろ書いてます。■最近作ったサイト ・みんなでなかよく政治の話!「なかよし討議!」 ・女子のつぶやきまとめ「Twiggy×Twiggy!」 ・もブログ ・ツイッターバトラーズ! ・ニコニコ人気ユーザーランキング ■連絡…

AGデスクトップレコーダーが開始処理中となって動かない!

「AGデスクトップレコーダー」というデスクトップ画面をキャプチャできる便利なソフトがあります(このソフトです!) ↓ AG-デスクトップレコーダー ダウンロードページこのソフトはPCのキャプチャ動画をツイッターにアップロードするときにめちゃくちゃ役…

PHPで全部nullで埋められたn個の配列を生成する!

PHPで全部nullで埋められた配列(n個)を生成する方法です。「array_fill」という関数を使うと簡単にできます。以下のコードでは「インデックス0」を先頭にして、10個分の配列を生成してくれます。中身は全部nullで埋められてます。 $test_array = array_fil…

PHPで2chの書き込みIDのような文字列を生成するアルゴリズム!

PHPで2chの書き込みID風のユニークな文字列を生成するアルゴリズムです。以下のような感じのやつを出力します。 ↓ 「id:kh9D1A2c」 コメント投稿者の「IPアドレス」と「書き込み時刻」を連結した文字列をsha1-hmacでハッシュ化します。 同じ日付で同じIPアド…

ツイッター広告で自分のツイートが表示されない!

先ほどツイッター広告の「ツイートのエンゲージメント」という機能を使って広告を打とうとしたのですが、困ったことが起きてしまいました…。「クリエイティブを選択」の画面で自分のツイートを選択しようとしたのですけども、自分が先ほどつぶやいた一番最新…

【CakePHP3】Shellでデータを追加しようとしたらエラー発生!

CakePHP3でシェルを叩いて実験用のレコードを追加しようとしたら、以下のようなエラーが発生しました。 $ ./cake DataAdd Warning Error: /var/www/hogegege/tmp/cache/persistent/ is not writable in [/var/www/hogegege/vendor/cakephp/cakephp/src/Cache…

Twitter BootstrapのツールチップでAリンクを無効にする!

ツイッター・ブートストラップに「Tooltip」という機能があります。これを使うと、例えば「ヘルプ」みたいな文章にマウスをフォーカスすると、フワっと覆いかぶさるように説明文が表示される、とってもかっこいい効果ができます。使い方は以下のような感じで…

ツイッターのストリーミングAPIが401エラーで使えない!

ツイッターの「ストリーミングAPI」を使ってつぶやきを採取する実験をしているんですが、いつも使えてるAPIがいきなり使用不能になってしまいました・・。私は「Phirehose」というPHPのライブラリでAPIを利用しているのですが、以下のようなエラーが出て接続…

twitter_idからプロフィールページにアクセスする方法!

あまりないケースだと思うのですが、ツイッターIDが分かっているけどもそのアカウントのページが分からない。そういうときは、以下のURLにアクセスすると本人のプロフィールページを見ることができます。https://twitter.com/intent/user?user_id=xxxxxxxx※x…

スパムメールに書いてあるURLをクリックしてはいけない!

最近ケータイに「スパムメール」をたくさん送り付けられていて困っています・・。受信したスパムメールの中には、「あなたに6億円をプレゼントします!」とか「〇〇ですけどメアドを変えました!」とか「セフレになってくれませんか?」とか、いろんな意味不…

【PHP】YoutubeのURLの動画ナンバーを正規表現で抜き出す!

youtubeのURLの中にある動画番号を、PHPの正規表現(preg_match)によって取得する方法です。つまり、「https://www.youtube.com/watch?v=B3o9h0RFw-c」というURLの中の「B3o9h0RFw-c」の部分を抜き出すということです。以下のようなPHPコードを実行すると、 …

【AWS】EC2サーバーにボリュームをアタッチしたら起動しない!

アマゾンのEC2サーバー(t2.medium)にボリュームをアタッチして起動しようとしたら、エラーが発生して怒られてしまいました・・。エラー文は以下のようなものです。 インスタンス開始のエラー Invalid value 'i-hogegehogegehogege' for instanceId. Instan…

【jQuery】spanタグをテキストを残して削除する!

「spanタグ」の中身のテキストを残してタグをだけを消去する方法です。以下のような「spanタグ」があったとします。 <span class="hogespan">ほげ~</span> これをjQueryの「unwrap」を使って削除します。一旦中身のコンテンツを選択して、その外側の要素を削除するという作戦です。 //jQue…

【CakePHP3】マイグレーション機能でカラムの定義を変更する!

CakePHP3のMigrations機能でカラムの定義を変更する方法です。①マイグレーションファイルを作る 以下のようにbakeコマンドを打って「ChangeComment」などというマイグレーションファイルを作ります。 ./bin/cake bake migration ChangeCommentコマンド打つと…

【git】既存のプロジェクトからコードをそのままに新プロジェクトに移行!

gitの話なんですけも、「今進行中のプロジェクト」から、コードはそのままで「新プロジェクト」を開始する方法です。■サーバ側作業 まずはサーバー側で「新プロジェクト」のファイルを作ります。プロジェクトファイルが格納されているディレクトリで、新プロ…

ツイッターでフォローが全部外れてしまったとき!

先日、私のツイッターアカウントのフォローが全部外れてしまう現象に出くわしました・・。私のアカウントは宣伝用に使っているもので、誰かれ構わずやたらとフォロー爆撃をしまくっているなんともはた迷惑なものなんですけども、ちょっとやりすぎてしまった…

【CakePHP3】Paginator機能で総ページ数を取得する!

CakePHP3の「ページネーション機能」を使うと、簡単にページ遷移のためのボタンを実装することができます。ページネーション機能の公式ヘルプ: https://book.cakephp.org/3.0/ja/controllers/components/pagination.html ビュー・テンプレート内で「ページ…

ロードバランサー(ELB)の設定が悪くてツイッターログインが失敗!

先日私のサイトでwebサーバーを二台に冗長する作業を実施したところ、ユーザーの「ツイッターログイン」が失敗する不具合が起きるようになってしまいました・・。 私のサイトはアマゾンのAWSサーバーを使っているんですけども、どうもAWSの「ロードバランサ…

【cakePHP3】paginaterの「limit」値を後から変更する!

cakePHP3のページネーション処理は「pagenater」を使うと簡単に実装できます。https://book.cakephp.org/3.0/ja/controllers/components/pagination.html公式ページを見ると、ページに表示するコンテンツの行数(litmi)は、以下のように初期設定することが…

アマゾンAWSで「php-devel」をインストールする!

アマゾンのEC2サーバーで「phpize」のコマンドを使おうとしたら、以下のようなエラーが出て怒られてしまいました。 #phpize Can't find PHP headers in /usr/include/php/5.6/php The php-devel package is required for use of this command. どうも「php-d…

【PHP】idiormでデータを全クリアしたい場合!

DBを操作できるPHPライブラリ「idiorm」で、テーブルのデータを全削除して真っ白にするための方法です。以下のように「delete_many()」を使うとテーブルを真っ白に削除することができます。 //tweetsテーブルを空にする $records = ORM::for_table('tweets')…

【PHP】idiormで「以上」や「以下」の条件式を使って検索!

簡単にDBを操作できるPHPライブラリ「idiorm」で、whereの条件式を使って「~以上」や「~以下」の値のレコードを検索する方法です。以下のようなPHPコード実行すると、各条件でレコードを検索できます。 //idiorm読み込み! require_once dirname(__FILE__)…

【PHP】idiormでSQlite3のDBをVACUUMする方法!

簡単にDBを操作できるPHPライブラリ「idiorm」で、SQLite3のDBをバキュームする方法です。以下のようなPHPコード実行すると、DBをバキュームすることができます。 //idiorm読み込み! require_once dirname(__FILE__).'/lib/idiorm/idiorm.php'; //DBファイ…

Phirehoseを使ってTwitter Streaming APIでツイートを取得してみた!

「Phirehose」というPHPライブラリを使って「Twitter Streaming API」のリアルタイムのツイートを取得してみました。以下その手順です。 ■「Phirehose」をインストール!以下のGithubの「Phirehose」のページからファイルをダウンロードして、zipを解凍して…

【CakePHP3】マイグレーションのDB変更が反映されない!

先日CakePHP3の「Migration機能」で、あるテーブルに変更を加えたんです。以下のような感じで「tweet_type」というカラムをテーブルに追加する変更をやりました。 class AddTweetTypeProducts extends AbstractMigration { public function change() { $tabl…

ツイッターカードの画像が表示されないときはしばらく待つこと!

自分のサイトに「ツイッターカード」をセットすると、サイトをツイートしたときに「画像付き」で表示させることができます。自分のサイトのツイッターカードがうまく機能しているかどうかは、この「カードバリデーター」にURLを入れてチェックすることができ…

【CakePHP3】AWS SDK for PHPでS3サーバーにファイルをアップロード!

「AWS SDK for PHP」というアマゾン公式ライブラリを使うと、PHPを使ってアマゾンのS3サーバーにファイルをアップロード・ダウンロードすることができます。今回は「CakePHP3」でS3サーバーにファイルをアップロードする方法を説明します。 ■「AWS SDK for P…

【Javascript】iPhone Safariで時刻のソートが効かない!

Javascriptを使って、オブジェクトが入ってる配列を「時刻文字列」順にソートしようとしたんです。そうしたら、PCの「Chrome」ではちゃんと動作したコードが「iPhone Safari」では動作しませんでした・・。コードは以下のようなもの(time_listの配下にある…

【CakePHP3】Layoutファイルの中でConfigureのパラメータを参照する!

CakePHP3の話なんですが、「/config/bootstrap.php」内で、全ての箇所から呼び出し可能な「グローバル変数」を定義することができます。定義の仕方は以下のようにします(hogegeという変数を定義しています) //定数を定義 Configure::write('hogege', 'hoge…

Wi-Fiの調子が悪かったけどチャンネル幅の設定をいじったら直った!

ずっとWi-Fiの通信が不安定だったんですけど、ルーターの設定をいじったらだいぶ良くなりました。親ルーターは「PR-500KI」というNTTの装置で、無線の子機はエレコムの「WDC-300SU2S」という安いUSBのアダプタです。親ルーターの「チャネル帯域」という設定…