所以我正在使用URL搜寻器,但没有域和http的情况我却得到了很多路径。我想做一个函数,如果路径中不包含域和http来添加它。这是我的代码
<?php
$source_url = 'http://www.google.com/';
$html = file_get_contents($source_url);
$dom = new DOMDocument;
@$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
foreach ($links as $link) {
$input_url = $link->getAttribute('href');
echo $input_url . "<br>";
}
?>
如果没有任何方法,我只能提取包含http的网址
您可以使用regular expressions检查链接是绝对URL还是相对URL,即是否包含域。我所做的是检查链接是否以http://
或https://
开头。如果不是,则将源域添加到链接的开头。
foreach ($links as $link) {
$input_url = $link->getAttribute('href');
if (!preg_match('/^https?:\/\//', $input_url)) {
$input_url = $source_url . preg_replace('/^\//', '', $input_url);
}
echo $input_url . "<br>";
}