开发者

Grabbing a specific link's destination with php

开发者 https://www.devze.com 2022-12-22 08:55 出处:网络
Im trying to grab the destination (dynamic) of a link (static) with php Im not sure what the best way to do this is.

Im trying to grab the destination (dynamic) of a link (static) with php

Im not sure what the best way to do this is.

the link is

<a href=page.php?XXYYYYYYY&开发者_C百科gt;LinkName</a>

the X's are letters and the Y's are numbers (both can vary in length). 'Linkname' always stays the same though.

Is regex the best option here? Or is there a better way?


I would use a DOM parser like PHP's built in one or simpleHTMLDOMParser to extract the link, and parse_url() to analyze the URL:

This function parses a URL and returns an associative array containing any of the various components of the URL that are present.


Regex is not the best way. Use a HTML parser such as DomDocument.


If your HTML was valid, you could do this easily with SimpleXML

$html = <<< HTML
<ul>
    <li><a href="page.php?XX">Link1</a></li>
    <li><a href="page.php?YY">Link2</a></li>
    <li><a href="page.php?ZZ">Link3</a></li>
</ul>
HTML;

and then

$doc = simplexml_load_string($html);
$links = $doc->xpath('//a/@href');
foreach ($links as $link) {
    $url = parse_url($link);
    var_dump($url['query']);
}

for output

string(2) "XX"
string(2) "YY"
string(2) "ZZ"

If valid HTML is not an option, try XML Reader, DOM or SimpleHTML (like Pekka suggested)


This pattern will get only what's after the href, and until the linkname

href=([\w.?]+)
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号