PHP vol.36
フォーマット文字列
- 第一引数に文字列を入れる。
- 第二引数からは入れる変数
sprintf('文字列',変数,変数,...);
- %sなどの指定で整形。
型指定子
%% | 「%」自身を表示 |
---|---|
%s | 引数の文字列→そのまま文字列で表示 |
%d | 10進数→そのまま10進数で表示 |
%f | 浮動小数点数→小数表記 |
桁数指定
/// 右づめ /// %6d /*最低六桁*/ /// 左づめ /// %-6d /// ゼロづめ /// %06d /* 余った桁をゼロで埋める指定 * -345 → -00345 */ /// 精度 /// %6.3f /* 上の例なら最低幅6、小数点以下3桁 * -0.3 → 「-0.300」 * 3 → 「 3.000」 */ /// 符号 /// %+6.3f /* 正負にかかわらず符号を表示する指示 * -0.3 → -0.300 * 3 → +3.000 */
正規表現
- preg_match
- mb_ereg_match
- preg_replace
preg_replace
<?php $mail_addr = 'hanawa-ナントカ@example.co.jp'; $mail_addr2 = 'ナントカ-カントカ@ドメイン名例.jp'; function replace_mailaddress2($mail_addr) { return preg_replace('/(hanawa-.*@)example.co.jp$/','\\1ドメイン名例.jp',$mail_addr); } function replace_mailaddress3($mail_addr) { return preg_replace('/(.*)-(.*)@(.*)$/','$2-$1@$3',$mail_addr); } echo replace_mailaddress2($mail_addr)."\n"; echo replace_mailaddress3($mail_addr2)."\n"; ?>
hanawa-ナントカ@ドメイン名例.jp カントカ-ナントカ@ドメイン名例.jp
- ()で囲んだ値が\\1で呼び出されている。
- \\1の代わりに$1でもよい。
もし、ハイフンが3つ以上あったらどうなるか?
<?php $mail_addr2 = 'abc-def-ghi@example.jp'; function replace_mailaddress3($mail_addr) { return preg_replace('/(.*)-(.*)@(.*)$/','$2-$1@$3',$mail_addr); } echo "before\t".$mail_addr2."\n"; echo "after\t".replace_mailaddress3($mail_addr2)."\n";
before abc-def-ghi@example.jp after ghi-abc-def@example.jp
- 長く取れるところまで取る(abc-def)
MVCの分け方
- Model View Controller
PHP制作 | |
---|---|
Model | ロジック(PHPコード) |
View | HTML(テンプレート) |
Controller | コントローラー(アクセスを受ける) |
index.php
<?php if (!isset($_GET['action'])) { $action = 'login'; } else { if (file_exists ('model/'.$_GET['action'].'.php')) { $action = $_GET['action']; } else { $action = 'login'; } } //共通ロジック呼び出し require_once 'library.php'; //ロジック呼び出し require_once 'model/'.$action.'.php'; //テンプレート呼び出し require_once 'view/temp_'.$action.'.php';