ちょっと前の案件ですが、本番サーバーで、CakePHPのvalidationで、emailやurlがちゃんと動かないという現象が起きました。
こちらのテスト環境では、当然ながら動いています。
色々ググってたら、PHP 5.3.3の正規表現に問題があるっぽいという記事に行きあたりました。
emailの場合、メールアドレスの@から前の部分は、
/^[\p{L}0-9!#$%&\’*+\/=?^_`{|}~-]+(?:\.[\p{L}0-9!#$%&\’*+\/=?^_`{|}~-]+)*@
となってますが、preg_matchでは、この部分常にマッチしない状況になってしまいます。
今更、5.3.3なんて…といいたいところですが、お客さんが使ってるサーバーですから、どうにもなりません。
それ以上に、なんの手も打ってないサーバー会社に驚きます。