読者です 読者をやめる 読者になる 読者になる

php pear Spreadsheet_Excel_Writerのエラーの対処方法

php

エクセルのバージョンは2013。使う前から想定はしていたけど案の定Spreadsheet_Excel_Writerでエラーが発生。 しかも通常は問題無いんだけど、ある一定以上のデータを出力しようとすると「一部の内容に問題が見つかりました」云々のエラーが出る。以下のサイ…

php 連想配列の先頭にデータを追加したい

php

[ PHP ] 配列の先頭に要素を追加 ( array_unshift, array_merge, + ) – 行け!偏差値40プログラマーこちらのサイトが参考になる。キーを保持したい場合は、基本array_mergeを使うことになると思うけど、それでもうまくいかない場合は、array_reverseを使えば…

cakephp1.2 findByIdにrecursiveを設定する

User->findById($user_id, null, null, -1); findByIdだけでなくfindByカラム名>であれば全部同じなのかも。参考サイト ku — cakePHPのfindByにrecursiveを設定する方法

htaccessで使用可能なディレクティブについて

htaccessにディレクティブを記述して/hogeへのアクセスの場合のみBasic認証をかけようとしたんだけど、いくらやってもInternal Server Errorとなる。「htaccess location」でググればすぐに原因解決するだろうと思いきや、htaccessではlocationが使えねーよ…

cakephp1.2 複数の同一モデルデータを一括でバリデートすることはできない(多分)

これまでな~んどもおんなじことやってその度に調べて半年もすれば忘れておんなじことをな~んども繰り返すのでめんどくさいけどメモする。 例えばこんなデータ Array ( [0] => Array ( [Model] => Array ( [col1] => hoge [col2] => fuga ) ) [1] => Array …

bootstrapでradioボタンのonchangeが効かない件

メモ iCheckでラジオボタンがかっこよくなると一生changeイベントが拾えない - arimoつくったメモicheckというライブラリが原因らしい Checkboxes and radio buttons customization (jQuery and Zepto) plugin以下のようにすること //$("#radio1").on('chang…

php 同一nameのフォームをpostした場合、後に書いたものが優先される

php

ケース1 <form method="post" action="/test.php"> <input type="hidden" value="hidden" name="col1" /> <input type="text" value="" name="col1" /> <input type="submit" value="send" /> </form> テキストボックスに「text」と入力してpostした時のprint_rの結果、テキストボックスが優先される Array ( [col1] => text )ケース2(textbox…

cakephp1.2 updateはできる限りsaveを使うこと

saveでupdateする場合でid以外を条件にしたい場合、通常updateAllを使うんだけど、updateAllを使うと ・自動でサニタイズしない ・自動でmodifiedを更新しない ・値を'で囲まないといけない 等々煩わしすぎる。そのためできる限りidを指定してsaveのupdateを…

cakephp1.2 フォームのデフォルト値について

もう忘れたくないのでメモ。 以下のようなテキストボックスがあるとする。 create('huga')); ?> text('hoge')); ?> このフォームをpostしてエラーになってもう一度表示した場合、自動で入力した値がセットされる。 次にDBから取得した値をデフォルト値とした…

centos5.11 php5.2 vim7.4 xdebug2.2.7 debugger.vimインストール手順

phpのデバッグ環境作りたくて最初vdebugを入れようとしたんだけど自分の環境だとどーにもpythonのバージョンの関係で動かなかったため結局debugger.vimをインストールした。(もしかするとpython2.6がデフォルトのcentos6以降じゃないとダメなのかもしんない)…

git pullに失敗したので変更を元に戻したい場合

git

git checkout ファイル名参考サイト Git でローカルの変更を元に戻す - present

サードパーティークッキーを使ったセッションの維持について

web

異なるドメイン間でセッションのやり取りをしたい。cookieの仕様で別ドメインのサーバーにはcookie(セッションID)が送信されない。つまり、ユーザーを特定できない。URLにSIDを埋め込む方法はあるが、これはこれでいろいろと問題がありそう。そこでサードパ…

サブドメインでのセッションの共有方法

php

http://www1.test.com/test1.php http://www2.test.com/test2.php というサブドメインが異なる二つのページ間でセッションを共有したい場合、以下のようにsession_startする前にsession.cookie_domainを設定する必要がある。

トータスsvn リポジトリに存在するファイルを追跡対象から外す方法

svn

トータスsvnで管理しているファイルを修正すると通常アイコンオーバーレイが赤くなる。しかし定義ファイルとかは本番と開発環境で違っていたりするため、そうするとフォルダ全体が赤くなってしまう&コミットする時にそのファイルも毎回コミット対象として表…

centos5.11 vim7.4インストール手順

centos5.11のデフォルトだと7.0なのでソースから最新のver7.4をインストールする。vimのgithub https://github.com/vim/vim※事前にcentosのpythonのデフォルトは2.4なのでepelから2.6をインストールすること。しかしこれだけだとコンパイル時に2.6ではなく2.…

mysql auto_incrementをダンプから外したい場合

skip-optオプションを使うとエンジンとかも表示されなくなるため、以下のようにsedでやるしかないらしい。 mysqldump -u user db_name -p -d | sed 's/ AUTO_INCREMENT=[0-9]*\b//' > db_name.sql

php php.iniの設定はhttpd.confやhtaccessでも設定可能

php

はまってしまったのでメモ。 php.iniのinclude_pathはデフォルトのままなのに何故か別フォルダのファイルをincludeしていたからなぜだろうと思ったら、htaccessにinclude_pathが設定されていた。 php_value include_path ".:/var/lib/sample:"htaccessを使う…

cakephp1.2 findでrecursiveを指定する

recursiveの指定の仕方を完全に忘れていて調べるのに5分くらいかかってムカッときたので次回は3秒で書けるようにメモ。書き方1 array( 'Model.id' => $id, ), 'recursive' => -1, ); $this->Model->find( 'all', $cond ); 書き方2 $id, ); // 第2引数はfie…

tmuxを使ってみる

インストール yum --enablerepo=epel install tmux 使い方 //起動 tmux //新しいウィンドウを追加 Ctrl-b + c //ウィンドウ一覧 Ctrl-b + w //ウィンドウ切り替え Ctrl-b + ウィンドウ番号 Ctrl-b + n Ctrl-b + p //ペイン分割(同じウィンドウ内で画面分割す…

php definedで配列を定義したい

php

php7だとdefinedに配列を指定できるようになったらしいがphp5.2ではできないので以下のようにすればよい。(もちろん区切り文字がデータに含まれないことが前提)

cakephp1.2 キャッシュについてまとめ

core.php

アンカーでonclickをする場合、return falseをすること

以下はどっちも同じ挙動するんだけど、ずっと方法2を使っていた。方法1は「return false」をつけることでアドレスに#が付いてページの先頭に移動してしまうのを防げる。void(0)とか気持ち悪いときは方法1がよいかも。 方法1 <a href="#" onclick="func();return false;">テスト</a> 方法2 <a href="javascript:void(0)" onclick="func()">テスト</a> 参考サイト …

cakephp1.2 validateである値に等しいかどうかはcomparisonを使う

array( 'comparison' => array( // 1の場合 'rule' => array('comparison', '==', 1), 'required' => true, ), ), );

cakephp1.2 validateのrequiredとnotEmptyと値が配列の場合についての再考

無駄に悩んでしまったので改めてまとめる。値がセットされているかだけチェックしたい array( 'notEmpty' => array( // このルール名はなんでもいいのでruleに合わせておけばOK 'rule' => 'notEmpty', // ruleは必須 'required' => true, 'message' => '選…

apache mod-evasive のインストールとxmlrpc.phpへのアクセス拒否設定

また海外からdosを食らったのでいい加減対策することにする。手順 // インストール yum install mod_evasive // 設定ファイルで設定値を調整 vi /etc/httpd/conf.d/mod_evasive.conf // ログフォルダ作成 mkdir /var/log/mod_evasive/ // 権限設定 chown apa…

cakephp1.2 paginateを使用する時のまとめ

cakephpでページング使用と思って、久しぶりだったので何を使えばよいか忘れてしまっていてpearのpagerにしようかと思ったけどやっぱりcakephp標準のpaginateにしようかと思ってやってみたんだけど実装までに4時間もかかってしまって鬱になってイラッと来た…

cakephp1.2 paginateでunbindModelする時は第2引数にfalseを設定すること

paginate実行する前にunbindModelする場合、必ず第2引数にfalseを設定して永続的に連結を解除すること。 そうしないと最初のcountの時だけ解除されて、データ取得する時は元に戻ってしまうらしい。参考サイト CakePHPのbindModelとunbindModel | 株式会社LIG

php array_multisortが優秀だった件

php

cakephp使ってて、以下のような多次元配列をNumber.numberでソートしたい [User] => Array ( [0] => Array ( [id] => 36 [Number] => Array ( [id] => 1044 [number] => 0300019992 ) ) [1] => Array ( [id] => 15 [Number] => Array ( [id] => 1041 [number…

jquery ある要素がDOM上に存在しているか確認する

if ($("#aaa")) { // 存在している場合 } とかでいけると思いきやダメだった。正解は↓ if ($("#aaa").size()) { // 存在している場合 } lengthでもよいぽい参考サイト device302.me - jqueryで任意の要素の存在チェック

php セッションの有効期限を2038年以上にするとセッションクッキーになってしまう件

cakephp1.2でSecurity.level=lowにした上でsession_startすると、本来であれば有効期限が25年先となるはずが、有効期限がセットされずにセッションクッキーになってしまうという問題にぶち当たった。しかもphp5.1だと発生し、php5.2だと発生しない。色々試し…

cakephp1.2 フォルダを分けて同名のコントローラーを作りたい場合

調べたけどできなそう。 なので、フォルダを分けていたとしてもコントローラー名は重複させないこと。ちなみに、URLのコントローラー名の部分は被ってもroutesで制御できるので問題ない。 'user_histories')); Router::connect('/admin/histories/:action/*…

php 1つのformにsubmitボタンを複数設置する方法

php

わざわざjavascriptを使ってあほなことをやっていた。 submitのデータは押したものしか送信されない。(PHP)HTMLのFORMでSubmitボタンを複数配置したい場合 : 3流プログラマのメモ書き formに複数ボタンのサンプル(同じname属性値)

phpからcurlを使う

php

wgetを使っていたらファイルが破損するケース(と思ったら勘違いだったぽい)があったため、今後はcurlを使うようにすること。以下、ファイルダウンロードのメモ。 /dev/null 2>&1"; passthru($cmd, $ret); オプション -o ダウンロード時のファイルを指定 -k …

cakephp1.2 セッションの有効期限についてまとめ

通常のphpの場合、php.iniの以下の設定が有効期限に影響する session.cookie_lifetime = 0 session.gc_maxlifetime = 1440cookie_lifetimeはクッキーの有効期限(秒)となる。これが86400とかだと、クッキーのexpiresが1日後となる。0の場合は、セッションクッ…

jquery browser is undefined エラーの件

jquery1.9以降、$.browserが削除されたらしく、新しいjqueryとqtipを一緒に使うと出てしまうエラー。 jqueryを古いものに変えることができない場合、以下を読み込めばOK。http://code.jquery.com/jquery-migrate-1.0.0.js16/2/28追加 chromeだと以下のエラー…

jqueryでいい感じのトースト表示を行いたい

以下を使えば簡単にできる。 kamranahmedse/jquery-toast-plugin · GitHub 使い方 <script src="/js/jquery.toast.min.js"></script> <link rel="stylesheet" href="/css/jquery.toast.min.css"> javascript $.toast({ //heading: '更新しました', text: '更新しました', position: 'top-center', stack: false, //bgColor: '#f9edbe', //bgColor: '#E01…</link>

cakephp1.2 session->flash()を1ページで複数使い分けたい場合

php Session->setFlash('テスト', null, array('class'=>'mb10'), 'test1'); $this->redirect('/'); html flash('test1'); ?>

cakephp1.2 prefixを無効にした場合のform->createのカスタマイズについて

前回の続きで「'prefix名' => true」とかにすると$form->createで勝手にprefixがつくのを防ぐことができるけど、今度は逆につけたい場合に困ってしまう。 create( 'Samples', array( 'action' => 'index', 'method' => 'post' ))); 上記で出力されるhtml↓ <form id="SamplesIndexForm" action="/samples/index" method="post"> </form>…

cakephp1.2 ルーティングの設定でform->createの際に自動でprefixがセットされるのを防ぐ方法

"Routes::connect設定時の$form->createや$html->linkの挙動について" フォーラム - CakePHP Users in Japan ここが参考になるroutes.phpの設定で「'prefix名' => true」とすると、$form->createした際などに勝手にprefixがセットされるのを防ぐことができた…

php FPDFのPGOTHICとGOTHICの横幅の違いについて

php

PGOTHICは半角の文字によって横幅が異なるっぽい。 例えば「1」と「W」では「W」の幅の方が広い。 GOTHICだとどちらも同じっぽいので、バイト長で折り返しする際は、GOTHICを使うこと。

php 日本語に対してstrlenを使う際は必ずsjisに変換して2バイトにしてから使うこと

php

utf8だと3バイトだったり2バイトだったりするので気をつける 変換については↓ utf8の日本語を2バイトにしたければshift_jisに変換すればよい - 技術ブログ

aws ec2 ことはじめ

aws

約7年ぶりに再開。もう何もかも忘れた。以下が参考になるAWS EC2を使って無料枠でWebサーバを立ててみた(2014年11月版) - sometimes I laugh 0から始めるAWS入門②:EC2編 - Qiita EC2スタートアップ。どちらも詳しいEBS Magnetic vs SSDのベンチマーク | E…

git 特定バージョンのファイルを取得する手順

git

普通にgit pullすると最新のコミットファイルがmasterブランチに反映される(正確には語弊があるのかも)。 今回、以前のあるコミット番号のバージョンにローカルのファイルを戻したかったんだけど、その手順。 git checkout <git logにて取得できるコミット番号> これを実行するとそのバージョン</git>…

ログアウトしてもバックグラウンドで処理を継続したい

&つければバックグラウンド処理になるけど、ログアウトするとプロセスも終了してしまう。 ログアウトしてもプロセスを終了させないためには、nohupをつけて実行する。 nohup ./test.sh & tail -f nohup.out 実行すると、nohup.outがカレントに自動で作成され…

vim レジスタについて

vim

vimのレジスタの機能を使うと、ヤンク(コピー)したテキストを複数保存・取り出しすることが可能。vim tips レジスタを使ったコピーとペースト Vimのレジスタをまとめる - .logbook参考サイトコピー "ayy貼り付け "apa-zを指定することが可能参照 :reg :reg a

javascript ドラッグ&ドロップによる複数ファイルアップロードについて

【仕様】 ・ファイルをドラッグ&ドロップでアップロードしたい ・従来のファイル選択でのアップロードも可能(一度に複数選択可)jQuery File Upload Demo 最初は「jQuery File Upload」でやろうとしたけど、 機能が多すぎて、導入やカスタマイズがめんどくさ…

javascript データ構造について

JavaScriptで覚えておくとよいデータ構造 - 配列・オブジェクト - いろいろ解析日記 すぐに忘れるのでメモ配列 定義 var a = []; var a = ["b","c"]; 格納 a.push("b"); 特定の位置に格納 a[1] = "b"; 長さ a.lengthオブジェクト 定義 var a = {} var a = {"…

javascript dragenter やら drop イベントについて

[HTML5] Drag & Drop API おさらい 「ファイルの DnD」 | Developers.IO 参考サイトhtml5のドラッグ&ドロップについて。dragenter 領域内にファイルをドラッグさせた時に発生するイベント。 stopPropagationによりイベント伝播を止めないとdropイベントが…

javascript stopPropagation preventDefaultについて

1分でわかるreturn false; preventDefault(); stopPropagation() の違い | iwb.jpここが分かりやすいpreventDefault リンク等のイベントを無効にする(イベント伝播は継続)stopPropagation イベント伝播をキャンセルする

php 名前空間について

php

jQuery File Upload Pluginを実行したらこんなワーニングが出た。 PHP Warning: Unexpected character in input: '\\' (ASCII=92) state=1どうやら以下の行でエラーになっていたらしい。