複雑なクエリーの例
$wsql->query(‘SELECT * FROM a WHERE preg_match(“/^/snippets/i”, $href) and preg_match(“/^array_/i”, $text)’)
検索条件にpreg_matchをANDで設定した場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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("<pre>"); 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クエリの結果を取り出していきます。
[出力結果]
1 2 3 4 5 6 |
Array ( [href] => http://www.kakaku.com [tagname] => a [text] => kakakukomo ) |
/