【MySQL】2147483647ってなんやねーん

符号あり整数とか、符号なし整数とか。その手の問題から目を背けていたら、やっぱり自分に返ってきましたよ、というお話。

とあるページにユーザーのアクセスがあったら、IPアドレス・ユーザーエージェント・日付などをログテーブルに格納するプログラムを書いていたのだけど、IPアドレスの所がどうもおかしい。

PHPの「ip2long()」と「sprintf」を使ってドット付き10進数のIPアドレスを符号なし整数に変換していたのだけど、2147483647問題が多発。笑

コードを簡単に書くと、こんな感じ↓

$ip = sprintf("%u",ip2long($_SERVER["REMOTE_ADDR"]);

この段階での$ipは正常値なんだけど、DBに格納する段階で勝手に「2147483647」になってしまっていて、レコードが2147483647だらけ・・・という由々しき事態に陥ったのです。笑

続きを読む

githubにファイルをアップする方法(その2)

前回の「githubにファイルをアップする方法(その1)」の続きです。

前回はgitコマンドをインストールするところまで書きましたので、その後の流れです。

まずはSSHの公開鍵をgithubに登録します。
https://github.com/account から「SSH Public Keys」を選択します。

私の場合はすでに登録してあるので「centos5.5」が表示されています。
登録は簡単で、「Add another public key」から情報を登録するだけです。

公開鍵の発行方法は『SSH公開鍵の作成方法』を参考にしてください。

では、githubの設定の続きです。

続きを読む

githubにファイルをアップする方法(その1)

先日githubの会員登録をした。ものの、使いかたがちょっとわかりにくかったというか、忘れそうだったのでメモ。

1. 会員登録

https://github.com/

上記のgithubの公式サイトから無料のユーザー登録をする。

2. 新しいリポジトリを作成する

ログイン後、画面右下に小さく「New Repository」というボタンがあるので、
そこをクリックする。

すると、リポジトリ新規作成画面に遷移するので、必要情報を入力する。

Project Name ・・・ プロジェクト名を入力します。(必須項目)
Description・・・概要を入力します。(オプション)
Homepage URL・・・ホームページURLを入力します。(オプション)

Who has access to this repository? (You can change this later)
↑無料版では「Anyone」しか選択できないのでそのまま「Create Repository」をクリックします。

うまくいくと、下のような画面に移動します。

続いて、githubの初期設定をします。

続きを読む

【jQuery】スマートフォンで使えるタブ切り替え機能を作ってみた

仕事でスマートフォンサイトを作る機会があって、ついでだったので
タブ切り替え機能を実装してみた。

まだまだしょぼしょぼな感じだけど、公開します〜。
ちなみに、「tab-switcher.js」とかいうそれっぽい名前にしてみました。笑

githubにて公開しているので、そちらからDLしてください。
https://github.com/ryotsun/jquery-tab-switcher-plugin

とりあえず、HTMLとJSをベタで貼り付けます。

続きを読む

RSSの画像を取得する方法

最近はやたら忙しい。
この忙しさは、ぜったい無能の表れだww笑

とあるシステムのとりあえずの納期が来週に迫り、長期レースもいよいよ終盤戦。

ここのところ終電帰りが続いているので、体調管理をしっかりしつつ、決戦に備えたいと思います。(σ ̄ロ ̄)σ

 

今日の新しい発見は、PHP5のsimplexml_load_file()の用法。笑
もう少し厳密に言うと、SimpleXMLElement のメソッド群の使い方。

とあるブログのRSSを取得するときに、単純にsimplexml_load_file($url)をしただけでは、
dc:dateとか、子ノード?オブジェクト?の情報が取れない^^;

今日はずーっとそこで悩んでたのだけど、どうやら以下で解決。

http://www.php.net/manual/ja/simplexmlelement.children.php#85566

 

for XML namespaces such as <dc:creator> in RSS feeds use

<?php
$xml = new SimpleXMLElement($string);
$item = $xml->channel[0]->item[0];
$dc = $item->children(“http://purl.org/dc/elements/1.1/“);
echo $dc->creator;
?>

ちなみに$dc->encodedってやったら確か画像が取得できる。(というかcontent情報がすべて格納されている)

これで、RSSのすべての情報が取得できるっぽい。
RSSで飛ばされてる画像データが取れない時も、これをやると解決するかも。

画像を抜く場合は正規表現とかでごにょごにょしたら終了。

とりあえず、自分の為にメモ;;