[PHP] Basic認証を記録する[PHP] Basic認証を記録する
PHPファイルがパスワード保護されたディレクトリに配置されているサイトで、ユーザがBasic認証を通過し、そのディレクトリ内の任意のPHPファイルに最初にアクセスしたときにログを取りたいというニーズあり。 考え方 Bas […]
PHPファイルがパスワード保護されたディレクトリに配置されているサイトで、ユーザがBasic認証を通過し、そのディレクトリ内の任意のPHPファイルに最初にアクセスしたときにログを取りたいというニーズあり。 考え方 Bas […]
以下のようなスクリプトを書いてブラウザからアクセスしたらいい。 <?php echo `whoami`; ?> 結果例 apache
Windows版PHPでsymlink()が常にエラーになるという現象に直面。 たとえば以下のようなPHPファイルをブラウザから実行すると $target = "c:/xampp/htdocs/temp/index.ht […]
ブラウザから直接アクセスできないディレクトリにあるファイルをブラウザへ送りたいニーズあり。 たとえば、セキュリティを担保するためにブラウザから直接アクセスできないディレクトリに置いてあるファイルを、ブラウザから認証を経由 […]
月の末尾 (最後の日) を取得するニーズあり。調べたところ、PHPの標準機能を使って簡単に取得できることがわかったのでメモ。 サンプルコード // 今月の末日 $date = new DateTime(); $lastD […]
PHPUnitはPHP版のxUnit、すなわちユニットテスト自動化のためのフレームワーク。 さほどPHP暦が長くない自分はこれまでテストを書いてこなかったのだけど、現在携わっているプロジェクトの複雑さが増すにつれてテスト […]
PHPでも関数の引数を参照渡しできる。 参照渡しするには変数に&を付ければ良い。 function add_some_extra(&$string) { $string .= 'and something […]
ユーザの満年齢をチェックしたいときがある。 たとえば18禁のエロサイトとか、成人していることが条件の通販サイトとか。ユーザに誕生日を入力させて、現時点の満年齢をチェックしたい。 今日と誕生日の2つのDateTimeオブジ […]
ユーザに入力させた日付が実際に存在するかチェックしたいときがある。 たとえば30日しかない月なのに31日と入力されたり、うるう年でないのに2月29日と入力されたり。そういった不適切な入力を検知して、ユーザに再入力を促した […]
便利なPHPの言語仕様にの1つにlist構文がある。 list構文を使うことで、関すから複数の値を返すことができる。 function small_numbers() { return array (0, 1, 2); […]
strpos関数を使う。マルチバイト文字列の場合はmb_strpos関数。 strpos関数は文字列中で部分文字列が最初に現れる位置を0ベースの整数値で返す。部分文字列が見つからない場合はFALSEを返すのでこれをチェッ […]
PHPには === (イコールが3個) という比較演算子がある。 C++やC#から来た人は意外に思うかも。僕も最初「なんだこれ?」と思った。 マニュアルを見て違いを押さえておく。 例 名前 結果 $a == $b 等しい […]
date_diff() 関数を使うと、2つの日時の差を得ることができる。 // 日時1 $datetime1 = date_create('2007/04/11 01:23:32'); // 日時2 $datetime2 […]
メールを送信するサンプルコード。メール本文はSmartyで定義。 Hello, {$recipient}. How are you? See you soon! $to = "hanako@example.com"; $ […]
メールを送信するサンプルコード。 $to = "hanako@example.com"; $from = "taro@example.com"; $bcc = "takeo@example.com"; $return = […]
複数のプロセスが同じファイルに書き込むような場合には排他制御が必要になる。 しかし、書き込もうとしたファイルが既に別プロセスによってロックされていた場合に「ロックされていたので書けませんでした」と言われても困る。別プロセ […]
$_SERVER配列にセットされる情報は、Proxyサーバーを経由するかしないかで若干変わってくる。 Proxyサーバーを経由しない場合 $_SERVER[‘REMOTE_ADDR’] – アクセ […]
Smartyで単純ループさせるには以下のようにする。 {section name=year start=1901 loop=2015} {$smarty.section.year.index} {/section} これ […]
XdebugはPHP用デバッガー&プロファイラーツール。 Xdebug – Debugger and Profiler Tool for PHP http://xdebug.org/ 最新のXAMPPには同梱されているけ […]
コンテンツ配信系のウェブサイトで更新情報をRSSで配信するニーズあり。PHPのプログラミングとは直接関係ないが、PHPでサービスを実装するための予備知識としてRSSに関してざっくり勉強。 基本的には単なるXMLファイルな […]