-1

Web ページからアイテムのタイトルを取得するために使用される php 関数を見つけました。使用された正規表現/<div class=\"detail\">(.*?)<p>/siは、次のコードのように:/<div class=\"detail\">特定の div に一致させようとしており、(.*?)<p>その div の後の任意の文字に一致していることはわかっていました。と<p>/siどういう意味ですか? ありがとう!

    <?php

    // Get the title
    function match_title( $content ) {
         preg_match( '/<div class=\"detail\">(.*?)<p>/si', $content, $result );
         isset( $result ) ? $title = trim( addslashes( $result[1] ) ) : $title = '';
         return $title;
    }

    $url = "http://a.m.taobao.com/i21708516412.htm";
    $item = file_get_contents($url);
    $title=match_title( $item );

    ?>
4

2 に答える 2

3

すべての修飾子については、こちらを参照してください: http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

i (PCRE_CASELESS)
If this modifier is set, letters in the pattern match both upper and lower case letters.

s (PCRE_DOTALL)
If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.

要約すると、改行が一致し、式は大文字と小文字を区別しません。

于 2013-05-25T06:50:16.657 に答える
0

/si正規表現マッチングモードです

i正規表現の一致で大文字と小文字を区別しません。

s「シングルラインモード」を有効にします。このモードでは、ドットは改行に一致します。

参照 -正規表現一致モード

于 2013-05-25T06:52:31.560 に答える