質問

が必要でpreg_matchます。aspx"(クォート)のコンテンツができるようにするためのlibsoupおよば、全体のurl。するものとして、

$content = '<div>[4]<a href="/m/c.aspx?mt=01_9310ba801f1255e02e411d8a7ed53ef95235165ee4fb0226f9644d439c11039f%7c8acc31aea5ad3998&amp;n=783622212">New message</a><br/>';

現在でpreg_match"。aspx"ドルからコンテンツを加えることにより、出力として

"/m/c.aspx?mt=01_9310ba801f1255e02e411d8a7ed53ef95235165ee4fb0226f9644d439c11039f%7c8acc31aea5ad3998&amp;n=783622212"

ドルのコンテンツはリンクを除く"。aspx".います。またすべてのurlることができる。aspx".

みなさん、そしてどのようんです。

役に立ちましたか?

解決

あなたがHTMLを解析するDOMを使用正規表現ではありません。あなたはしかし、属性値を解析するために正規表現を使用することができます。

編集:それはc.aspxをチェックするように、一例を更新しました。

$content = '<div>[4]<a href="/m/c.aspx?mt=01_9310ba801f1255e02e411d8a7ed53ef95235165ee4fb0226f9644d439c11039f%7c8acc31aea5ad3998&amp;n=783622212">New message</a>

<a href="#bar">foo</a>

<br/>';

$dom = new DOMDocument();
$dom->loadHTML($content);

$anchors = $dom->getElementsByTagName('a');

if ( count($anchors->length) > 0 ) {
    foreach ( $anchors as $anchor ) {
        if ( $anchor->hasAttribute('href') ) {
            $link = $anchor->getAttribute('href');
            if ( strpos( $link, 'c.aspx') ) {
                echo $link;
            }
        }
    }
}

他のヒント

いず引用文字列。aspx:

/"[^"]*c\.aspx[^"]*"|'[^']*c\.aspx[^']*'/

だがしかし、解析では、ほとんどのHTMLんであるべきとの何らかのDOMのパーサできるようにするというだけマッチングは本当にすることができる。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top