【发布时间】:2017-06-07 13:40:48
【问题描述】:
我正在尝试获取页面上的所有链接。例如,如果用户在输入字段中输入https://laravel.com/,他们将看到该页面上的所有链接。
我已经让这个概念起作用了。这是我的部分代码:
$website = request('website_url');
$pureURL = 'http://www.'.$website.'/';
$doc = new \DOMDocument;
@$doc->loadHTMLFile($pureURL);
foreach ($doc->getElementsByTagName('a') as $link){
$linkDetail[] = array('url' => $link->getAttribute('href'));
}
$pageLinks = $linkDetail;
return view('api.index', compact('result'));
我的前端代码:
@foreach($pageLinks as $key => $link)
{{ $link['url'] }}<br />
@endforeach
这是我得到的:
问题是,我只想获取所有以 https 开头的链接。我想避免其中有 /doc 的链接等等。 我将如何去做。我不太擅长正则表达式,但我知道有一种方法可以使用它。
【问题讨论】:
-
你可以使用
strpos函数来检查href是否包含https。像这样if (strpos($link->getAttribute('href'), 'https') !== false) { -
使用 parse_url 看这里stackoverflow.com/questions/7468309/…
标签: php regex laravel url-rewriting