【发布时间】:2013-03-10 12:45:57
【问题描述】:
我正在从头开始制作一个搜索引擎(哈哈),我一直在解决这个问题:
当用户提交 URL 时,我的“蜘蛛”会“抓取”它以获取其他链接。
有些人当然使用<a href="/page"> 而不是<a href="http://long-domain.com/page">,所以我用
if(substr($link->getAttribute('href'), 0, 1) == '/')
并在其前面添加一个域。但是,每当我添加一个域时,一些链接就会变成http://php.net//abcd。如您所见,它的//。
现在,我的想法是让我的脚本编辑提交的 URL,所以如果它最后有一个斜杠,它将被删除,但我不知道如何删除它。
【问题讨论】:
-
相对 URL 比仅以斜线开头要复杂得多。事实上,许多相对 URL 根本不以斜杠开头 - 并且仍然不包含域名。
-
... 然后您可能在有效的相对 URL (
/www.domain.com/pages) 中有域名;和协议相关的 URL//domain.com/page -
我没遇到过这些问题,我做个小检测。谢谢。
-
@user2153768
http://google.com/directory上的链接可能会显示为index.html,这意味着结果应该是:http://google.com/directory/index.html。它可能是/index.html,这意味着它应该是:http://google.com/index.html,或者它可能是./index.html或../index.html或任何数量的其他组合。这种方法根本不可能奏效。 -
这对你来说可能很有趣:stackoverflow.com/questions/4444475/…