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

日付のフォーマットはdate関数で

php

いっつも忘れるのでメモ。2014/01/05な感じの日付データを2014/1/5な感じに変更したい場合なんだけどdate使えば一発のところsubstrを使っていつもやっちゃう。

javascript使う時はシングルクォーテーションに注意

文字列にシングルクォーテーションが入っているとjavascript使うときに色々と弊害が起きるので、エンティティの'(実際は小文字)に置換すること。ちなみにシングルクォーテーションには実体参照が存在しない。(ダブルクォーテーションは&qout;)あ…

Firefoxでhistory.backした時の挙動をIEやChromeに合わせる方法

知らなかったのでメモ。 例えば、入力→確認画面と遷移するときに、入力画面でボタンをdisabledにして移動し、確認画面でhistory.backで戻ったケース。 ieやchromeなら戻った画面でも普通にボタンを押せるんだけど、ffだとdisabledのままになってしまう。 ff…

cakephpのvalidateが効かなくてハマった件

いくらソースの中身を見なおしてもどこも間違っていない30分ハマった結果、modelのファイル名が、user.phpとなっていないといけないところ、users.phpとsがついていたのが原因だと分かった。エラーだせよcake。。

javascriptの数値変換について

基本的なことだけど忘れていたので書く。例えば以下の場合。javascript var num = $("#test").val() + 1; alert(num); html <input type="hidden" value="1" id="test" /> 結果は以下のようになる11文字列を数値として解釈したいのであれば以下のようにする var num = parseInt($("#test").val()) + 1; a…

cakephp1.2 paginateのgroup by対策

paginateの条件に対してgroup byを使うとページ数が正しく表示されなくなる。具体的には、1ページ100件としてページングを設定していた場合、検索結果が1000件だったとしても、最初の1ページしか表示されない、といった症状が起きる。これのやっか…

nl2br の場合でも h 忘れないように

忘れてたのでメモ。もちろんタグの使用が不可の場合。

JSON.parse が駄目なら eval でいいじゃない

cakephpでjson返してjavascriptで JSON.parse するとparseエラーが出た。別の環境だとうまくいくのに。phpのバージョンとかjqueryのバージョンも関係なさそう。理由がさっぱり分からん。上手くいかないケースはタブが\tでなかったり、/がエスケープされてな…

ajaxの際に form.serialize で一括送信できる件

今までバカな事していた。ajaxでpostとかgetする際に、いちいち各inputの値とかを取得していたんだけどそんなことしなくてもform.serializeで一発だった。javascript function postForm(btn) { $.ajax({ type: "post", url: "/test.php", data: $(btn.form).…

cakephpで物理削除時はdeleteかdeleteAllを使う

いっつも忘れて以前のソースを探す時間を毎回ムダにするのでまとめておく。 Model->delete($id)) { // 成功 } // deleteAllの場合 $param = array('xxx_id' => $id); if ($this->Model->deleteAll($param)) { // 成功 } テーブルのidを指定して削除するとき…

php foreachのバグというか気をつける点について

php

これも昔に出くわしていながらよく原因を調べずに今日また同じ問題に遭遇してしまった。

1 == '1a' は true です

php

自戒の念を込めて書く。比較の時は、トリプルイコール(===)使えって散々言われてきたけど面倒くさくていつも==で済ませていた。今日 1 == '1a' がtrueになってヒヤッとした。分かってるつもりで分かっていなかった。適当な性格がこういう所でコーディングに…

csvを読み込むやり方

php

いつも忘れるのでメモしておく

PHPのページャー処理にPearのPagerを使う

php

ずーっと前から気になっていたにもかかわらず自前の微妙なページャーを使っていたんだけど、ようやくPearに用意されているPagerモジュールを使ってみた。以下の様な感じで使う。(CakePHPで利用) 20, "itemData" => $data, "mode" => "Sliding", "prevImg" =…

strtotimeのまずい点

php

3/31に3月を-1 monthした場合、2月にならない3/31 を -1 month -> 2/31 -> 2/28 + 3 -> 3/3 が帰ってくる↓も。基本的に月末はまずい 5/31 -> 5/1 7/31 -> 7/1 10/31 -> 10/13/31に+1monthすると5/1になる。(3/31+1m -> 4/31 -> 4/30+1d -> 5/1)mktime使う…

配列にキーがあるかどうかを調べたいときは、issetではなくarray_key_existsを使う

php

issetはキーがあってもnullだとfalseになるのでその場合は、array_key_existsを使う。 if (array_key_exists("key", $val)) { echo "exists"; } 最初あまりに使っていなくて、array_key_exists($val["key"])とかやってた。あほだ。

DEBUG時のクエリの行数を変更する

今日知ったんだけどDEBUG=2の時にログに出るSQLって、DBごと?に200件までらしい。 なのでそれを調整する方法。/cake/libs/model/datasources/datasource.phpの126行目あたりの var $_queriesLogMax = 200; の値で調整可能。 ただし6000件以上に設定するとま…

設計時に考慮する点まとめ

要件定義 機能要件(パフォーマンス等)、決済機能、非機能 基本設計 サーバー設計、NW設計、セキュリティ設計(SSL) DB設計(ER図、テーブル定義) 運用設計(バックアップ、ログ、アラート、負荷監視) クラスタ設計、負荷分散設計 外部設計(PC、モバイル、アプリ…

Linuxサーバーにアンチウィルスソフトは必要か?

■まとめ ・ウィルスってほとんどWindows用でLinux用はほとんどないらしい ・linuxはウィルスを実行しにくい作りになっている。見知らぬソフトをダウンロードして実行、ということもほとんどない(ブラウジングしなければ) ・linuxはwindowsと違い共有サーバー…

FPDFのまとめ

FPDFに定義されているHeader()、Footer()はページのヘッダーとフッターとなるため、AddPageでページ追加する度に自動的に実行される。SetAutoPageBreak(boolean)で自動的に改ページされる。(デフォルトtrue)今回、このHeader()&Footer()に本来メイン部分に…

ComponentからComponentを呼び出したい場合

普通は以下のように書く class Sample1Component extends Object { var $components = array('Sample2'); // $this->Sample2でアクセスできる しかしこれだとShellからSample1Componentを読んだ場合に、Sample2Componentの処理でエラーとなってしまうので、r…

javascriptを非同期で読み込む方法

郵便番号から住所を表示してくれる外部ライブラリのjsを利用しているんだけど、たまに読み込むのに時間がかかって画面の表示が遅くなる時があった。 で、調べてみたところ非同期で読み込む方法があったらしい。 方法は単純でscriptタグに async="async" を追…

セブンネットのAPIが使えるようになるまでの手順

api

セブンネットでは商品検索等のアフィリエイトAPIが提供されているけど、利用出来るまでの手順が面倒くさかったのでまとめておく。1 セブンネットショップの会員登録 2 nanacoカードの作成 3 nanacoカードの登録 4 アフィリエイトの利用登録 ※ここで登録した…

PHPで取得したXMLをブラウザでそのままツリー表示したい

php

下記のようにContent-typeをxmlにしないといけない $xml = file_get_contents($xml_get_url); header('Content-type: application/xml; charset=UTF-8'); echo($xml);

バイナリログをsqlに変換する方法

mysqlbinlog --no-defaults mysql-bin.000019 > /root/20130806/bin_000019.sql※--no-defaultsをつけないと'unknown variable'エラーが出るsqlに変換すれば実行日時も分かるため解析に利用できる

PHPでスレッド処理

php

curl_multi系の関数を利用するとphpでスレッド処理っぽいことができるらしい。試してはいないけど。参考サイト PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

juqery-uiのdatepicker使うときのバージョンについて

jqueryが1.3.2より新しい場合は、jquery-uiを1.8.9より新しいバージョンにしないといけないらしい。ちなみにdatepicker使う際は、下記4つがあればOK ・jquery.js ・jquery-ui.js ・jquery.ui.datepicker-ja.js(日本語対応用) ・jquery-ui.css jqueryとjquer…

mysqlでselectの結果を一括してinsertしたい場合

下記でusersのデータ分すべてuser_infosにinsertが可能 insert ignore into user_infos ( id, user_id, name, deleted, created, modified ) select NULL, id, NULL, deleted, NOW(), NOW() from users order by id asc; 参考サイト [mysql] INSERT 〜 SELEC…

Error in LIST command: Exceeded the login limit for a 15 minute period.

Hotmailをgmailのpop3で受信する際に出たエラー。 gmailで短時間にメールを取得しに行くと発生するため、慌てずにgmailの取得間隔に任せておけばそのうち消えるはず。他のエラーの場合も一時的な可能性があるので、少し様子を見たほうがよいかも。

IE9 で jquery ui がドラッグ出来ない件

jquery 1.7.2 jquery-ui 1.8.20にしたらIE9でもドラッグ出来たjquery 1.4.3 jquery-ui 1.8.6以上であればこのバグが改修されているらしい参考サイト jQuery UI does not work on IE9... - jQuery Forum