ソフト開発塾

KONDO-NETサーチ(KLSH)
- 新着 - VB - VC - Perl - PHP - カテゴリに登録 -

PHPちょっとメモ

<FORM method="POST">の<INPUT>で入力した値は
$_POSTで、値は収録できるのだが、
<input type="checkbox" name="type" value="1">
<input type="checkbox" name="type" value="2">
<input type="checkbox" name="type" value="3">
としても、正しい値がとれない。
これを、次のようにすると
<input type="checkbox" name="type[]" value="1">
<input type="checkbox" name="type[]" value="2">
<input type="checkbox" name="type[]" value="3">
$_POST[type]が、配列になる。


preg_matchの利用方法
PHPのマニュアルより
int preg_match ( string pattern, string subject [, array matches [, int flags]])
patternで指定した正規表現により subjectを検索します。

matchesが指定された場合、検索結果が代入されます。 $matches[0]はパターン全体にマッチしたテキストが代入され、 $matches[1]は最初の括弧付きのサブパターンにマッチしたテキスト が代入され、といったようになります。

flagsには以下のフラグを指定できます。


PREG_OFFSET_CAPTURE
このフラグが設定された場合、マッチする度に付随する文字列のオフ セットも返されます。これにより、返り値は配列となり、その各要素 はマッチした文字列を要素0、 subjectの中でのその文字列オフセットを要 素1とする配列となることに注意して下さい。 このフラグは、PHP 4.3.0 以降で利用可能です。

flagsパラメータは、PHP 4.3.0 以降で利用可能です。

preg_match()は、pattern がマッチした回数を返します。これは、0回(マッチせず)または1回となり ます。これは、最初にマッチした時点でpreg_match() は検索を止めるためです。逆にpreg_match_all()は、 subjectの終わりまで検索を続けます。 preg_match()は、エラーが発生した場合にFALSEを 返します。

となっていますが、よく意味がわからないので、私なりに理解した内容を説明します。
機能1
 文字列変数 $subject="0123456789"に、文字列 '456'が存在するかを確認するには
$rc=preg_match('/456/',$subject);とし、存在する場合$rcが1存在しない場合0となる。
機能2
 文字列変数 $subject="0123456789"に、文字列 '123'と'789'にはさまれた文字を探すには、 $rc=preg_match('/123(.*)789/',$subject,$matches);とし、存在する場合$rcが1存在しない場合0となる。
 また、存在する場合、(上記の例では)$matches[0]に'123456789'が入り、$matches[1]には'456'が入ることになる。


正規表現を詳しく知るためには
http://jp2.php.net/manual/ja/ref.pcre.php
http://jp2.php.net/manual/ja/pcre.pattern.modifiers.php
http://jp2.php.net/manual/ja/pcre.pattern.syntax.php
を参照することになるのだが。。。。難しい!!

それから、Googleで日本語マニュアルの検索できないのが。。。 自前の検索エンジンKLSHにマニュアルを食わせようかとも思っている。。。

ソフト開発塾 前のページへ戻る
---KONDO-NET.GR.JP---
今日のアクセス人目