Используйте ответ @Alec, если вы ищете только базовую часть URL (2-я часть вопроса от @David)!
$html = '<a href="http://www.mydomain.com/page.html" class="myclass" rel="myrel">URL</a>';
$url = preg_match('/<a href="(.+)">/', $html, $match);
$info = parse_url($match[1]);
Это дастВы:
$info
Array
(
[scheme] => http
[host] => www.mydomain.com
[path] => /page.html" class="myclass" rel="myrel
)
Таким образом, вы можете использовать $href = $info["scheme"] . "://" . $info["host"]
, что дает вам:
// http://www.mydomain.com
Когда вы ищете весь URL междуhref, вы должны использовать другое регулярное выражение, например регулярное выражение, предоставленное @ user2520237.
$html = '<a href="http://www.mydomain.com/page.html" class="myclass" rel="myrel">URL</a>';
$url = preg_match('/href=["\']?([^"\'>]+)["\']?/', $html, $match);
$info = parse_url($match[1]);
это даст вам:
$info
Array
(
[scheme] => http
[host] => www.mydomain.com
[path] => /page.html
)
Теперь вы можете использовать $href = $info["scheme"] . "://" . $info["host"] . $info["path"];
, что даетВы:
// http://www.mydomain.com/page.html