-1

シンプルなphpクローラーを構築しようとしています

この目的のために

http://simplehtmldom.sourceforge.net/を使用してWebページの定数を取得しています

ページデータを取得した後、次のようにページを取得します

include('simplehtmldom/simple_html_dom.php');
$html = file_get_html('http://www.mypage.com');
foreach($html->find('a') as $e) 
echo $e->href . '<br>';

これは完全に機能し、そのページのすべてのリンクを印刷します。

私はいくつかのURLを取得したいだけです

/view.php?view=open&id=

私はこの目的のために関数を書いています

function starts_text_with($s, $prefix){
    return strpos($s, $prefix) === 0;
}

この関数を次のように使用します

include('simplehtmldom/simple_html_dom.php');
$html = file_get_html('http://www.mypage.com');
foreach($html->find('a') as $e) {
    if (starts_text_with($e->href, "/view.php?view=open&id=")))
    echo $e->href . '<br>';
}

しかし、何も返されません。

私が必要なものを理解していただければ幸いです。

i need to print only url which match that criteria.

ありがとう

4

1 に答える 1

1
include('simplehtmldom/simple_html_dom.php');
$html = file_get_html('http://www.mypage.com');
foreach($html->find('a') as $e) {
    if (preg_match($e->href, "view.php?view=open&id="))
         echo $e->href . '<br>';
}

これを一度試してください。

preg_matchを参照

于 2012-06-25T10:52:46.660 に答える