自前Utilityクラス

当サイトの素材でも使っている、便利な関数を紹介していきます。
PHPアプリでは、文字データをチェック、加工したい場面が頻繁に訪れます。
沢山の処理の中で頻繁に使う部分や、別のスクリプトで再度使うであろう部分は、
このクラスに集めておいて必要な時に呼び出すと便利です。

番号とパスワードの妥当性チェック

PHP:
  1. function isDigit($id) {
  2.   if(!preg_match('/^[1-9][0-9]*$/', $id)) $id = '';
  3.   return $id;
  4. }
  5.  
  6. function isPass($pass) {
  7.   if(!preg_match('/^[0-9A-Z]+$/i', $pass)) $pass = '';
  8.   return $pass;
  9. }

isDigitは、引数が0から始まらず数字のみで構成されているかどうかを判断します。
単に数字の羅列かどうかを調べたいなら、is_numeric関数が用意されています。
isPassは、引数が半角英数字のみで構成されているかどうかを判断します。

メールアドレス、URLの妥当性チェック

PHP:
  1. function isMail($mail) {
  2.   if(!preg_match('/^[\w\-\.]+@[\w\-]+(\.[\w\-]+)+$/', $mail)) $mail = '';
  3.   return $mail;
  4. }
  5.  
  6. function isUrl($url) {
  7.   if(!preg_match('/^(https?|ftp):\/\/[\w\+\$\;\?\-\/\.%,!#~*:@&=]+$/', $url)) $url = '';
  8.   return $url;
  9. }
  10.  
  11. // \w = 英数字[_a-zA-Z0-9]

メールアドレスの妥当性はこれで大体計れますが、厳密には相当長い正規表現が必要になります。更に、携帯用アドレスには例外もあります。旧J-PHONE機で「?」「/」「+」が含まれるものや、上記関数では通りますが、ピリオドが連続するような不思議なアドレスも存在します。

文字列からURLをリンクで置換する

PHP:
  1. function autolink($str) {
  2.   return preg_replace('/(https?|ftp)(:\/\/[\w\+\$\;\?\-\/\.%,!#~*:@&=]+)/', '<a href="\\1\\2">\\1\\2</a>', $str);
  3. }

第二引数の\\1、\\2は後方参照と言って、第一引数内括弧()一番目、二番目に相当します。
(ちなみに\\0は第一引数の正規表現全部にマッチした文字列が入ります。)

秒数を計る

PHP:
  1. function getMicrotime() {
  2.   list($usec, $sec) = explode(' ', microtime());
  3.   return ((float)$sec + (float)$usec);
  4. }
  5.  
  6. // 例$start = getMicrotime();~ ループなどの処理 ~$end = getMicrotime()
  7. // 所要時間(秒) = $end-$start;

ベンチマークなど、処理経過時間を計算したい時に使います。
microtime

文字列の最初と最後の余分なホワイトスペースを取り除く

PHP:
  1. function mb_trim($str, $chars='\s ') {
  2.   $str = mb_ereg_replace("^[$chars]+", '', $str);
  3.   $str = mb_ereg_replace("[$chars]+$", '', $str);
  4.   return $str;
  5. }
  6.  
  7. // \s = 空白文字[ \t\n\r\f]

内蔵のtrim関数に全角スペースを追加した機能。
(PHPでマルチバイトを正確に扱うには注意が必要です。)
マルチバイト文字列関数

UTF-8の場合はpreg_replaceで書けます。

PHP:
  1. function mb_trim($str, $chars='\s ') {
  2.   $str = preg_replace("/^[$chars]+/u", '', $str);
  3.   $str = preg_replace("/[$chars]+$/u", '', $str);
  4.   return $str;
  5. }

改行コードをBRタグに変換する

PHP:
  1. function nlToBr($str) {
  2.   $str = preg_replace("/\x0D\x0A|\x0D|\x0A/", "\n", $str);
  3.   $str = preg_replace("/\n{3,}/", "\n\n", $str);
  4.   $str = str_replace("\n", '', $str);
  5.   return $str;
  6. }

フォームから受け取った文章内の改行をBRタグに変換します。改行を表す改行コードはOSによって異なる為、統一してから変換するとどのOSでも同じ効果が得られます。

OS 表示記号 改行コード 改行文字
Windows CRLF \x0D\x0A \n
Macintosh CR (Carriage Return 改行) \x0D \n
Unix LF (Line Feed 行頭復帰) \x0A \n

(注) 内蔵のnl2br(string)は改行文字の前に改行タグを挿入します。

  • Search

Copyright (c) 2004-2008 MT312 All Rights Reserved.
Powered by WordPress ME