如果x不包含y,是否有向x添加文本的函数| PHP

问题描述 投票:0回答:1

所以我正在使用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的网址

php function url web-crawler
1个回答
0
投票

您可以使用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>";
}
© www.soinside.com 2019 - 2024. All rights reserved.