2014-01-01から1年間の記事一覧

phpでhttpリクエストをする時の手段まとめ

php

お手軽にやるなら、phpの file_get_contents しっかりやるなら、pearの HTTP_Request phpに依存しないやり方なら、コマンドの curl(またはphpのcurlモジュールを利用)file_get_contentsは簡単に使えるけど、実は色々できて、basic認証はもちろん、ヘッダー付…

ExceptionクラスのgetTrace()を使うとエラーの呼び元が分かる

php

_aaa(); } catch(Exception $e) { print_r($e->getTrace()); } function _aaa() { throw new Exception(); } 結果 Array ( [0] => Array ( [file] => /home/test.php [line] => 48 [function] => _aaa [class] => Test [type] => -> [args] => Array ( ) ) […

javascriptでx日後の日付を得る方法と日付の比較について

jqueryのdateFormatを使うと整形がシンプルにできる。html <script type="text/javascript" src="/js/jquery.dateFormat-1.0.js"></script> javascript // 今日 var day = new Date(); // 10日後 day.setDate(day.getDate() + 10); // Date型にすることで日付同士の比較が可能となる day = new Date($.format.date(day, "yyyy/M/d")); var…

phpでキーを保持しながら配列をカットする(切り出す)方法

php

array_sliceはデフォルトのままだとキーを振り直す。 最後にtrueを指定することでキーを保持することが出来る。 2,4=>3),0,1,true)); 結果 Array ( [5] => 2 )

App::importで任意のパスから読み込みたい場合

第4引数にパスを設定すればOK

psによる重複チェック

php

Table-to-JSONが非表示になる時の対処法について

Table-to-jsonの対象となるhtmlは、dom上にappendされていないと通常処理の対象とならない。Appendせずに処理の対象としたい場合、ignoreHiddenRowsオプションをfalseにすればよい。 element.tableToJSON({ignoreHiddenRows: false});

mysqlのToo many connectionsエラーについて

mysqlはデフォルトで最大接続数が100に設定されている。 それを越えると接続エラーとなる。(以下はcakephpが出したエラー) 2014-07-21 11:06:09 Warning: Warning (2): mysql_connect() [<a href='http://php.net/function.mysql-connect'>function.mysql-connect</a>]: Too many connections in [CORE/cake/libs/…

ファイル書き込み時はrewindを忘れないこと

php

cakephp1.2のafterfilterは必ず呼ばれるわけではない

cakephp1.2でbeforeFilterは必ず呼ばれるぽいけど、afterFilterはビューの存在しないアクションを指定したりすると、404NotFoundが発生して、afterFilterを呼ぶ前に終了する。

extjsでビューからコントローラー名を取得する方法

MyAppName.app.getController('コントローラー名'); Why does this.getApplication().getController('MainController').testFunction(); fail

javascriptでurlのパラメータ値を取得する方法

window.location.searchその他、window.locationが持つ情報について locationオブジェクト一覧|window.locationオブジェクト|JavaScript/DOM|PHP & JavaScript Room

(後で消す)sakuraエディタカラー設定

C:\Program Files\sakura\keyword\javascript.col; テキストエディタ色設定 Ver3[SakuraColor] C[BRC]=1,1,000080,000000,0 C[CAR]=1,0,40ff00,000000,0 C[CMT]=1,0,bd5f00,000000,0 C[CTL]=1,0,00ffff,000000,0 C[CVL]=0,0,ff8080,000000,0 C[DFA]=0,0,c8f0…

javascriptの正規表現で変数を使う

通常のmatch text.match(/<table id="tbl"[\s\S]*<\/table>/); 変数を使う場合 var table = "tbl"; text.match('<table id="' + table + '"[\\s\\S]*<\\/table>'); 違いは、\を2個書くことと、前後の/が不要になる点 以下のようにRegExpを使っても同じっぽい var table = "tbl"; text.match(new RegExp('<table id="' + table + '"[\\s\\S]*<\\/table>')); JavaScriptで、変数を使っ…</table></table></table>

Ext.apply と Ext.applyIf の違い

Ext.applyは、対象オブジェクトに対して、全てのプロパティを代入する。 console.log(this.foo); // undefined var ret = Ext.apply(this, { foo: 'bar', hoge: 'piyo' }); console.log(this.foo); // bar Ext.applyIfは同じプロパティが存在する場合、上書…

extJSでオブジェクトとJSONの変換

Ext.encode()、Ext.decode()を使う var o = {test: "test2"}; console.log(o); console.log(Ext.encode(o)); console.log(Ext.decode(Ext.encode(o))); 結果 Object {test: "test2"} {"test":"test2"} Object {test: "test2"}

extJSにおけるscopeの意味

scopeなし launch: function () { Ext.Ajax.request({ success: function(response){ // エラーになる store = this.getMyJsonStoreStore(); } }); } scopeにthisを指定 launch: function () { Ext.Ajax.request({ success: function(response){ // エラーに…

javascriptで改行を含んだ正規表現

text.match(/[\s\S]*/); [\s\S]は改行を含む任意の一文字ということになる複数行にマッチさせる正規表現 | You Look Too Cool

jqueryのセレクタの第2引数の意味

var ele = $('#id', var_html); $()の第2引数にhtmlエレメントを指定すると、#idの検索対象をそのhtmlに設定することができる $(var_html).find('#id') これも同じ意味ぽい

eclipseでphpの環境を構築する手順

下記のサイトからeclipse4.3(kepler)をダウンロード ※Full Edition の PHP を選択のこと Eclipse 日本語化 | MergeDoc ProjectPDTやSVNのプラグインもセットでダウンロードされる。CakePHPで、ControllerのModelがクラスとして認識されず、F3のジャンプが出…

phpからsshでコマンドを実行する方法

php

例えばweb上でapacheのユーザーから別のユーザーにスイッチして作業したいケースで、phpからsshを使う方法。まずshで問題ないことを確認する(StrictHostKeyChecking no → 確認メッセージを表示しない)。何も考えず以下を実行してみる。 ssh -l user -p 10022…

winscpで自動同期するまでの手順

※winscpバージョン:5.5.4windwosでの開発についてwindows上でソース編集してそれをサーバーにアップして動作確認する開発スタイルの場合、編集する度に手動でアップするのは効率が悪すぎるので、自動更新したい場合、以下の2つの方法がある。1. winscp上で…

sublime text3 設定まとめ

後で消す putty C:\Users\user\Documents\putty\log\&Y-&M-&D-&T-&H_putty.log・:でコマンドが開かない時がある?ぽいので保存はctrl+sにしたほうが良いかも Sublime Text3 を導入から設定まで詳しく解説するよ! | アイデアハッカー メニュー日本語化 { "f…

yum update でレポジトリを一時的に追加する方法

忘れるのでメモ。レポジトリの場所 /etc/yum.repos.d/方法1 例えばepel.repoの場合、 enabled=0 を enabled=1 に変更するyum update すると↓のような感じでepelが追加される [root ~]# yum install gearmand Loaded plugins: fastestmirror, priorities Repo…

topのload averageについて

topで表示されるロードアベレージは処理待ちになったタスクを表示している。load average: 0.00, 0.02, 0.01の場合、1分、5分、10分という順序となる。

psでスレッドを表示したい場合

Lオプションをつける。例えばmysqlはマルチスレッドなのでプロセス自体は一つしか表示されない。Lをつけることでスレッドが表示される。

phpでジョブキューを行う

php

ジョブキューについて http://gihyo.jp/dev/serial/01/perl-hackers-hub/001001 VOYAGE GROUP エンジニアブログ : 重たい処理を華麗にスルーして、アプリケーションの体感速度をぐっと向上させる方法phpだとGearman(ギアマン)が便利らしい。 クライアントか…

細かい処理は全部関数化すること

php

コントローラーの処理は機能単位で細かく関数化すること。そうすればコントローラーのメイン部分の処理はもちろん、関数内でもエラーの時点でreturn falseできるため、ソースが圧倒的に綺麗で見やすくなる。returnができるということは、その時点で処理を抜…

開発するうえでソース管理は必ず必要

例え一人開発でもソース管理絶対必要。元がどうだったかわからないと、誰が悪いのかが分からないから。案件Bもそう。最初からの不具合なのか自分がいれた不具合なのかが、履歴をたどれないので分からない。入れれば良かったね・・やっぱり。自分がその必要性…

キャッシュという考えが抜けていた

php

APIで正常なアクセスの場合、わざわざ毎回DBに接続しているけど、アクセス時間をキャッシュ(メモリorファイル)して制限時間内かどうかそのキャッシュを見るようにすればよかった。どんなときでも「キャッシュが使えないか」という考えを忘れないようにしよう…