blogですかい

仕事、プライベートで学んだことなどを発信し、その内容がたとえ少数でも誰かの役に立ったらなら、それはとっても嬉しいなって

PHP

AWS LambdaでもPHPがしたい!

AWS Lambdaでは基本的に、Node.jsやJava, Pythonを用いて開発をしますが、それらから別の言語の処理系を呼び出して動かすことも可能です。 例えば、PerlのスクリプトであればLambdaのコンテナにインストールされているので、このように動かすことができます…

最近使い方を知ったPHPの文字列関数

PHP

ltrim(string $str [, string $charlist]) $strの左端から連続する$charlistに含まれる文字を除去する rtrim(string $str [, string $charlist]) $strの右端から連続する$charlistに含まれる文字を除去する trim()は知っているけど、左右限定のものがあると…

CakePHP3のShell

CakePHP Advent Calendar 2014 16日目 Shellの作成 src/Shell/ に作成。 例えば、 AiuraShell.php を下記のような内容で作成する。 デフォルトではAppShellクラスが無い点が、CakePHP2と異なる。 必要なら自分で作る。 上記のAiuraを実行すると下記のように…

Restricted Words (出題者 @cielavenir 氏) 反省会 #codeiq #q431

CodeIQにて出題されていた「普通じゃないHello World」の期限が過ぎ、 問題及び解答の公開が解禁されましたので、私の解答を公開します。 課題(一部抜粋) 標準出力に Hello World と出力するプログラムを作成して下さい。 ただし、数値・文字・文字列リテラ…

PHPのSoapClientで、名前空間の接頭辞をns1から任意のものに変えたい場合

PHP

Facebook AppからユーザにNotificationを投げる方法

Notificationとは こういうの 公式ドキュメント PHPでの実装例

DebianにてaptでインストールされたPHPのビルドオプションを確認する方法

インストールされているPHPがどんなオプションでビルドされたか確認したいとき、mod-phpであればphpinfo()、cliであればphp -iなどを使うのが一般的です。 が、Debianのaptでインストールした場合、phpinfo()やphp -iではConfigureオプションは出力されませ…

EmacsのPHP-modeのインデント設定

今まで2タブにしていたのを4タブにしようと思って (add-hook 'php-mode-hook '(lambda() (setq tab-width 2) (setq indent-tabs-mode t) )) ↑の設定から (add-hook 'php-mode-hook '(lambda() (setq tab-width 4) (setq indent-tabs-mode t) )) ↑の設定にし…

JenkinsでWebサーバの死活監視をする

ダウンしたっていいじゃないか サーバだもの という詩にあるように、どんな強固なサーバでも停止してしまうことがあります。 サーバが停止しないような策を講じることはもちろん大事ですが、停止してしまったときの対応も同様に重要な課題です。 悪意のある…

JSONPはページとAPIのドメインが分かれても通信できますけどAjaxは同じドメインでないとできないんですよ

漢字のよみがな検索システムであるよみたんがAPIを提供しているということで、使ってみた。 が、初心者かと思われるような落とし穴にハマったので、自分への戒めのために、ことの次第を記す。 ハマったポイント 曰く APIなのでAjaxなどから呼び出して使うこ…

PHPで aタグ以外をサニタイズする方法

PHP

フォームの値を受け取るときやスクレイピングなどで「<a></a>以外のタグを消し去りたい」って事がありますよね。 それをスマートに解決する方法があるんです、そう、PHPならね。 php > $str = '<div><a href="hoge">hage</a></div>'; php > echo strip_tags($str,'<a>'); <a href="hoge">hage</a> とまぁ、こんな感じで、</a>…

CakePHP2.xでdatabase.phpの設定を取り出す方法

Controller等でRDBへの接続設定を取り出したいときに $database_config_name = 'default'; App::import('Model','ConnectionManager'); $db = ConnectionManager::getDataSource($database_config_name); echo $db->config['host']; echo $db->config['login…

CakeEmailクラスでenvelope fromを指定する方法

CakeEmail::returnPath()の罠 CakeEmailクラスには $_returnPathというプロパティを操作するreturnPath()というメソッドが用意されているが、 何故かこのメソッドで設定した値は、送信時のEnvelope Fromに反映されない。 'transport'=>'Mail'の場合 transpor…

AWS S3とPHP SDKについて

S3について 言わずと知れたファイルホスティングサービス 一つのAWSアカウントで、複数のbucketを作ることができる bucket ファイルの入れ物 bucket毎にリージョンが指定可能 1つのbucketに複数のファイルを格納できる AWS-SDK for PHP PHPからAWSの各種サー…

Mac OS X Lionにpecl aopをインストールする

PHP

pecl aopとは何ぞや http://www.slideshare.net/hinakano/peclaop自分のMacのPHPで試してみようと思いましたので、先ずはpeclのインストールから [prompt]$ cd /usr/lib/php [prompt]$ sudo php install-pear-nozlib.phar No log handling enabled - using s…

【PHP】正規表現の書いてある行をコメントアウトするときの注意

@s','',$html); 上記のプログラムは特に問題無く動くのですが @s','',$html); このように 「*?>」 を含む行を 「//」 や 「#」 でコメントアウトすると、 ?>をP…

CakePHP2でHABTMなモデルを作った話

CakePHP歴1ヶ月未満の私が、CakePHP2.2.2にてhasAndBelongsToManyなアソシエーションを持つモデルを設計する際に少々てこずったのでその備忘録。例えば、アニメの名前のテーブルと声優の名前のテーブルをひも付けたい、といった場合の話。(アニメの名前と声…