htmlSQL サンプル(6) – preg_match()の使用

複雑なクエリーの例
$wsql->query(‘SELECT * FROM a WHERE preg_match(“/^/snippets/i”, $href) and preg_match(“/^array_/i”, $text)’)
検索条件にpreg_matchをANDで設定した場合

connect('url', 'http://example.com/sample.html')){
        print 'Error while connecting: ' . $wsql->error;
        exit;
    }
                                                                                                               if (!$wsql->query('SELECT * FROM a WHERE preg_match("/www/i", $href) and preg_match("/^kakaku/i", $text)')){
        print "Query error: " . $wsql->error;
        exit;
    }

    // fetch results as array return them:
    foreach($wsql->fetch_array() as $row){
        printf("
");
        print_r($row);
        printf("

");
}
?>

1. $wsql = new htmlsql();
で、htmlsqlクラスのオブジェクトを作成し、$wsqlに代入。

2. $wsql->connect(‘url’, ‘http://example.com/sample.html’)){
で、第二引数をURLとしてアクセスします。

3. $wsql->query(‘SELECT * FROM a WHERE preg_match(“/www/i”, $href) and preg_match(“/^kakaku/i”, $text)’);
で、2.で得たURLに対しquery()の第一引数で指定したSQL文を実行します。
ここでは、aタグに対して、「preg_match(“/www/i”, $href) and preg_match(“/^kakaku/i”, $text)」という
条件を付けて抽出してます。
これは、href属性の値に、”www”という文字列がある、かつ、内容が”kakaku”という文字列から始まる場合、
という意味になります。

4. for($wsql->fetch_array() as $row)
で、3.で得たSQLクエリの結果を取り出していきます。

[出力結果]

Array
(
    [href] => http://www.kakaku.com
    [tagname] => a
    [text] => kakakukomo
)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>