我从头开始制作搜索引擎(笑),我坚持这个问题:
当用户提交URL时,我的“蜘蛛”会“抓取”它以获取其他链接。
有些人当然使用<a href="/page">
而不是<a href="http://long-domain.com/page">
,所以我用它来检测
if(substr($link->getAttribute('href'), 0, 1) == '/')
并在其前面添加一个域名。但是,每当我添加域名时,某些链接就会变为http://php.net//abcd
。如您所见//
。
现在,我的想法是让我的脚本编辑提交的URL,如果它最后有一个斜杠,它将被删除,但我不知道如何删除它。
答案 0 :(得分:8)
答案 1 :(得分:0)
只需在最终网址上进行字符串替换
<?php $final_url=str_replace("//","/",$your_link_to_be_crawled); ?>
这很简单。
在影响http://,
之后将//放回去让preg_replace
<?php
$your_url_to_crawl;
$patterns = array(); $patterns[0] = '/http:/';$patterns[1] = '/https:/'; $patterns[2] = '/any_other_protocol/';
$replacements = array(); $replacements[2] = 'http://'; $replacements[1] = 'https://';$replacements[0] = 'any_other_protocol';
echo preg_replace($patterns, $replacements, $your_url_to_crawl);
&GT;