如果最后一个字符是“/”,请将其删除

时间:2013-03-10 12:45:58

标签: php url dom substr

我从头开始制作搜索引擎(笑),我坚持这个问题:

当用户提交URL时,我的“蜘蛛”会“抓取”它以获取其他链接。 有些人当然使用<a href="/page">而不是<a href="http://long-domain.com/page">,所以我用它来检测 if(substr($link->getAttribute('href'), 0, 1) == '/')

并在其前面添加一个域名。但是,每当我添加域名时,某些链接就会变为http://php.net//abcd。如您所见//

现在,我的想法是让我的脚本编辑提交的URL,如果它最后有一个斜杠,它将被删除,但我不知道如何删除它。

2 个答案:

答案 0 :(得分:8)

您可以使用rtrim

$url = rtrim($url, '/');

它将删除字符串末尾的所有/,如果没有则保持不变

答案 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;