ダイジェスト認証、ベーシック認証でログインしたときのユーザー名を取得 php python
5月 20th, 2013
php <?php echo $_SERVER['REMOTE_USER']; python wsgi def application(environ, start_response): status = “200 OK” response_headers = [("Content-type", "text/plain")] start_response(status, response_headers) return [environ['REMOTE_USER']]
PHP5 typehinting タイプヒンティング型指定
4月 7th, 2013
http://php.net/manual/ja/language.oop5.typehinting.php function( Array $hairetsu ){ } function( AnyInterface $ahaha ){ } みたいな、関数の引数に、インターフェイス、オブジェクト、配列、( callable 関数) を型指定。
php strtotime fix
4月 4th, 2013
前月や次月の計算が strtotime(‘+1 month’); strtotime(‘-1 month’); のとき、30日±されるので、2月末や3月初旬にズレます。 そこで strtotime(date(‘Y-m-1′) . ‘+1 month’); strtotime(date(‘Y-m-15′).’-1 month’); とやるのが良いそうです。
redis-ranking sorted set の sort order desc が機能しない。。。
3月 19th, 2013
( redis 2.4ではダメでしたが、2.6は問題なく動きました。) sorted set で スコア昇順に並んでいるので by nosort desc で取得出来ると思っていたらなぜかできない。 SORT sortedsetlist BY nosort SORT sortedsetlist BY nosort DESC どちらも同じ・・・ ZREVRANGE sortedsetlist 0 -1 WITHSCORES とかはちゃんとスコア降順になります。 by nosort DESCは絶対行けると思ってたけどダメだった。。。 zcount を調べてlimitで後ろから順に取るという裏技もあるけど・・・ ZCOUNT sortedsetlist -inf +inf scoreをマイナスで入れるというパターンもあるけど・・・ それが一番分かりやすいかな・・・ と思ったけど2.4じゃなくて 2.6 だと行けるっぽいので 2.6 にしてみました。 scoreでsortできました!ということで sorted setでsort *** get *** を使いたい場合は、2.6が良いみたいです。 predisの書き方。predisのsortの書き方があまりなかったので残しておきます。 predisのところだけ $this->redis = new […]
PHP Reflectionクラスで、変数からインスタンス生成
1月 8th, 2013
http://php.net/manual/en/reflectionclass.newinstanceargs.php // フルパスのみ有効 useはx $classname = ‘\Data\Catspirng\Base'; $reflect = new ReflectionClass($classname); $instance = $reflect->newInstanceArgs($args); PHP Reflection http://jp2.php.net/manual/ja/book.reflection.php
javascript hash number key | messagepack
12月 26th, 2012
phpでmessagepackして msgpack( array( 1=>100, 2=>40 )); をjavascript で unpackすると var key = 2 x[key] = 50 と同じような感じで x = [50] となってしまうようです。
lz4 or snappy | lz4 php,python
11月 8th, 2012
http://code.google.com/p/snappy/ http://code.google.com/p/lz4/ snappy wikipedia http://en.wikipedia.org/wiki/Snappy_(software) lz4 komiyaさんのslideshare http://www.slideshare.net/komiyaatsushi/dsirnlp-3-lz4 lz4のほうが速度は速いらしいです。 とりあえずlz4入れてみます。 php と pythonで確認してみます。 php用 https://github.com/kjdev/php-ext-lz4 # git clone https://github.com/kjdev/php-ext-lz4.git . # phpize # ./configure # make # make install Installing shared extensions: /usr/lib64/php/modules/ Installing header files: /usr/include/php/ # echo “extension=lz4.so” > /etc/php.d/lz4.ini python用 http://pypi.python.org/pypi/lz4 # python-pip install lz4 Successfully […]
MessagePack + PHP
11月 7th, 2012
今回使いたい基本的なツールを一通り確認しておく。 http://msgpack.org/ $ mkdir msgpack && cd msgpack $ git clone https://github.com/msgpack/msgpack-php.git . Initialized empty Git repository in /opt/installer/php/msgpack/.git/ remote: Counting objects: 514, done. remote: Compressing objects: 100% (135/135), done. remote: Total 514 (delta 404), reused 484 (delta 374) Receiving objects: 100% (514/514), 158.56 KiB | 133 KiB/s, done. Resolving deltas: 100% (404/404), done. $ […]
mixi アプリ iOS 6 safari 3rd party cookie対応 | mixi.jp以外はリダイレクトしないように。
10月 14th, 2012
http://developer.mixi.co.jp/appli/ns/touch/cookie_enable_api/ iframeを呼ぶときにcreated_atをつけてstartを呼ぶと設定可に変わるということのようですね。 基本そのままですが、1点 set cookie処理の所を if( preg_match( ‘/^http:\/\/.*mixi.jp/’, $_GET['callback_url'] ) ){ // set cookie setcookie(“created_at”, time(), time() + 2592000); header(“Location: ” . $_GET['callback_url']); exit; }else{ // error fuck } 変なリダイレクトに利用されると困るので こんな感じでcallback_urlにmixi.jp以外は何もしないようにしました。
文字列を適当な添字をつけてとってみると? php
10月 4th, 2012
$ret = “789”; echo $ret["_"].”\n”; echo $ret["_aho"].”\n”; echo $ret["aho"].”\n”; echo $ret[0].”\n”; echo $ret[1].”\n”; $ret["_aho"]= 321; echo $ret.”\n”; さてどうなるでしょう? 7 7 7 7 8 3 389 こうなりました。 文字列を適当な添字をつけてとってみると一文字目を指すということのようです。 知らなかった。。。 配列のつもりで isset($ret["aho"])をやって文字列だとtrueを返していたので、あんだこれと