[PHP-users 13429] Re: 注釈文の検索

Katsuo Mogi php-users@php.gr.jp
Wed, 19 Feb 2003 19:48:37 +0900


茂木です。

In the message [PHP-users 13426] 注釈文の検索
               <20030219085805.93319.qmail@web302.mail.yahoo.co.jp>
堀越 年秋 <nekkori@yahoo.co.jp> wrote:

> なお、この注釈は1行に1つではなく、複数存在します。
> 以下、試したソースです。

> ------------------------------------------------------

> $tag = "hoge1<!-- LINK:CMD=dynamic -->hoge2<!--
> NAME:CMD=tpl -->hoge3";
> preg_match_all("/<!--\s*(LINK|NAME)\s*:CMD=.*\s-->/",$tag,$word);

> foreach ($word[0] as $val) {
> 	print $val . "<br>";

> }

> 上記を実行すると、純粋に注釈文を取得するのではなく、"hoge2"
> という文字列も取得してしまいます。
> 注釈文だけを取得したいのですが・・・。

注釈の中に> が現れないことが前提になってしまいますが。

preg_match_all("/<!--\s*(LINK|NAME)\s*:CMD=[^>]+\s-->/",$tag, $word);

でいかがでしょうか?
もっとうまい方法あるかも知れません。

# $tag = "hoge1<!-- LINK: ... の行は、元は1行なんですよね?
# コピーしてそのまま実行したら注釈文だけ取ってきたので焦りました。

--
---------------------------------
 茂木克夫
    mogi-k2@msg.biglobe.ne.jp
---------------------------------