メモ
独自フレームワークのPHP7対応に絡んで、認証 および CSRF対策周りを再設計したいので予備調査の結果を軽くまとめる ハッシュ関係 password_hash関数 パスワード認証用のハッシュ生成に使う password_verify関数 タイミング攻撃を回避するための文字列比較関…
phpDocumentor version 2.8.5 の PHP7対応時に嵌った&修正した項目を荒くメモしておく とりあえず、動くようにしただけなので、全ての環境で動くわけではないインストールは下記で実施 pear channel-discover pear.phpdoc.org pear install phpdoc/phpDocum…
久々におかしな仕様?バグ?にであったのでメモしておく。問1: 下記のコードについて実行結果を予測し解答せよ ?php function drct($input) {} $hoge = array(); drct($hoge['aaa']); echo var_export($hoge, true)."\n";問2: 下記のコードについて実行結果…
注意: 途中で力尽きました、ぜんぜんまとめきれてません・・・orz ○通信の最適化とは いわゆる3大キャリアを中心に、MVNOなども含む非wifi通信時(いわゆるLTEなど)におこなわれる、画像、動画等に対する非可逆圧縮のこと ○問題点 問題点としては複数あり、主に…
詳しい調査はしていないが、HTTP 1.1 でサーバ側から自前でレスポンスを返した場合(200応答以外の404などのレスポンスのときに起きた)に、クライアント側の file_get_contents() の返りが遅いという問題が起こるようだ。 原因は HTTP 1.1 では KeepAliveがデ…
例によって同僚に、ON DUPLICATEを使ってる時の、LAST_INSERT_IDの挙動がなんかおかしいという話を受け調査を開始した。 複数の同僚に手伝ってもらいながら検証した結果次のような現象が起こることが分かったため、メモしておく。 ON DUPLICATE でプライマリ…
↓の続き 誤報 APC の apc.include_once_override で動的な include_once 等が失敗する問題 http://d.hatena.ne.jp/narusase/20121030 どうも同僚の調査によると、動的なinclude_onceが原因ではないようだ ・・・というわけで、極限まで単純化したサンプルコード…
とあるよくわからないエラーを調査したときPEARのMail.php の@ 指定を解除したところ下記のようなエラーが発生したのでちょいと調べて見た。 結果としては先に設定したAPCの apc.include_once_override = 1 の設定が悪さをしていた事が分かったので一応メモ…
きたーーーメモリ使用量減った!! 以前から悩んでいたPHPのメモリ使用量が高い問題だがようやく対処方法が分かった php.iniに下記の設定を追加することで、とあるプログラムでは14MB食ってたのが4MBまで減少した(1プロセス当り) apc.include_once_override …
知り合いから教えてもらったのだが、PHPでは /** から始まるコメントが、require_once実行時に無駄にメモリを食う問題があるらしい・・・ということで調査してみた まずは、確認用のコードとして test.php を書く
これはだいぶ前にネタにした↓の超遅い続編です http://d.hatena.ne.jp/narusase/20091204 職場で(当人はまったく中の人が私だということに無自覚に)上記エントリがさらされたので、ちょっと、気になって調べてみた。 そしたらなんだか、1年半ほど前に下記で…
いろいろと、問題になっているUIDやUDIDの使用に関する話をちょっと書いてみる。 ガラケーではキャリアからひとつしか発行されないはずのメールアドレスによりある程度仮の個人の識別ができていたけど、メールアドレスは変更が出来たので、必要十分な個人の…
とりあえず、書き込んだ後で書いてるmemcacheには残っていたので、PDOかMySQLがあやしい。 あ[絵文字] の場合は書かれるが、[絵文字]あ とした場合は書かれないみたい。 ・・・文字コード周りの処理があやしい ALTER TABLE hoge CHARACTER SET utf8mb4; ・・・とし…
簡単に言うとPUTされたコンテンツが読みだすと消滅する問題 POSTや、PUTでHTTPのリクエストを送った際、ペイロードとして$_POSTでは扱えないひとつながりの文字列を送る場合がある。 その際、$_POSTでは取得できないため、file_get_contents('php://input') …
PREG ONLINE | PHPの種 http://www.php-seed.net/preg/ 正規表現の記述をリアルタイムで考えられるサイト・・・超便利
開発関連で企画方面と見解の相違があったので護身用にメモを残しておく。「偽装が可能なudidを信用するのは事故の元だからヤメレ」 と言う意図の発言をしたが受け入れられなかった。 とりあえず、そこら辺の周辺情報を調査をして再度声を上げるかのぉ・・・ ■iP…
それはさておき、年始に同窓会があったんで、そこでカメラマンやってたわけですよ ・・・で、驚いたのが未だにパソコン持ってないとか、携帯持ってないとか言う人がいたこと・・・はて、こまったぞ? どうやって、共有すれば良いんだ・・・? パターン分けして考える…
ええ、きちんとオブジェクト指向を理解してる人には文句を言われそうですが・・・○しっかりしたドキュメントのないオブジェクト指向は糞である。 なお、しっかりしたドキュメントとは、関数が提供する機能の概要と詳細、出来そうで提供出来ない機能の説明、引数…
PHPのfile_get_contents関数は、通常のファイルだけでなくWeb上のファイルも取得できる便利な関数ですが、特定の条件でおかしな動作をすることが判りました。具体的には、リクエストに対する返答でHTTP1.1の機能であるTransfer-Encoding: chunked を用いた場…
ありそうでない(みつからなかった)ので、ついカッとなって作った。 kye=value&foo=hoge&bar=123 の様なGETの引数として渡されるクエリ文字列を配列に展開する関数 まあ、普通は$_GETとか$_REQUESTとかで自動で展開させるので使わないが・・・・ この逆は、http_…
これまでのあらすじ NHKが受信契約を盾に支払いを要求 以前は同居していた親族が契約主だった 親族は現在、帰郷しそちらの方で既にある契約の傘下となっている 契約の名義変更が私の認知していないところで行われた 私はいかなる契約も結んでいないため認知…
現在私は一人暮らし(ちょっと前まで親族と同居)だがNHKが、私の認知しないところで契約変更があり、現在の契約者は私なので金払えという電話をしてきたのでちょっと調べてメモしておく 少なくとも確実に私はNHKと受信契約を結んだ記憶は無い。したがって、い…
・・・例によって嵌ったのでメモしておく 単純な配列の場合、array_mergeして、array_uniqueで問題ないが、対象が配列の配列だった場合は、期待通りの動作をしないため嵌った どうやら、配列の配列の場合、arrayは文字として解釈され、その中身は解釈されないこ…
PHP5.3で非推奨になった機能や関数をざっくりあぶり出すワンライナー http://d.hatena.ne.jp/shimooka/20100727/1280198801これは大変嬉しい! バージョンアップを考えてるけどなかなか場所の特定とかがめんどくさいので本当に助かる。
Yahooの携帯サイト用のクローラは下記のようなユーザーエージェントを吐く DoCoMo/2.0 SH904i(c100;TB;W24H16)(Y!J-AGENT)(robot) で、PEREの携帯のキャリア情報などを判定するためのNet_UserAgent_Mobile(手元のバージョンは0.30なので古いが・・・)をつかって…
■作ろうiモード:iモードブラウザ2.0新機能一覧 | サービス・機能 | NTTドコモ http://www.nttdocomo.co.jp/service/imode/make/content/browser/browser2/new_function/#p06■KDDI au: そのほかの技術情報 > Cookie http://www.au.kddi.com/ezfactory/tec/sp…
・・・が、だいぶ以前からあるようです。 例によって嵌ったのでメモしておきます例えばメールから直にHTTPSのサイトにアクセスさせるような場合に問題になります。 対処方法としては、そもそもHTTPSにアクセスさせるような場合は、事前にHTTPの踏み台ページを用…
まず、下記のようなコードを実行してみてほしい。 まあ、普通のコードである。 普通に考えれば、最終行まで実行されてvar_dumpの結果が表示されて終了するはずである。 しかし、実際にはなぜか何も出力をせずに終了してしまう。 true, 'mesg' => error); } …
MySQLでSELECT分などを実行する際にISO 8601のTつきのISO形式(2010-04-26T21:56:47+09:00 など)を指定した場合、この日時は正しく解釈されず、日時ではなく年月日のみが評価されるようだ。このような場合、PHP的には下記のようにいったん変換すると問題なく…
PHPのmb_strlenはCR+LFを2文字(バイトではなく文字な所に注意)として認識するため、CR+LFとLFが混在するような使い方をされた場合に、思った通りにコードが動かないことがある。下記コードを参考にして貰うと解るがCR+LFは2文字と解釈される。 これに対する…