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

Is there a function to add text to x if x not containing y | PHP

所以我正在研究 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

的 urls

您可以使用 regular expressions 来检查 link 是绝对的 URL 还是相对的,即是否包含域。我所做的是检查 link 是否以 http://https:// 开头。如果不是,则将源域添加到 link.

的开头
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>";
}