在php中修剪超过需要的URL

时间:2014-02-13 01:20:53

标签: php

我正在输入URL到我的数据库中,我得到了所有可能的条目

我有以下代码,可以取消http://httpwww .com .co.uk

但问题是这个

当我进入像hat.com这样的网站时,它会把'h'带走,这会发生在t,p,w,如果它的.co.uk只会删除.uk

$new = rtrim($url, "/");

$reverse = strrev( $new );
$new = rtrim($reverse, ".www");
$new = rtrim($reverse, "//:ptth");
$new = rtrim($reverse, ".www//:ptth");
$new = rtrim($reverse, "//:sptth");
$new = rtrim($reverse, ".www//:sptth");
$url = strrev( $new );

我错过了什么,我需要添加什么?

1 个答案:

答案 0 :(得分:1)

使用正则表达式将有助于此:

preg_replace('~(^https?(://(www\.)?)?|\.com$|\.co\.uk$)~', '', $url);

使用的正则表达式将匹配:

    字符串开头的
  • httphttpshttp://https://http://www.https://www.
  • .com.co.uk位于字符串的末尾。

见这个例子:

php> $url = 'https://www.example.com';
'https://www.example.com'
php> preg_replace('~(^https?(://(www\.)?)?|\.com$|\.co\.uk$)~', '', $url);
'example'
php> $url = 'http://hat.com';
'http://hat.com'
php> preg_replace('~(^https?(://(www\.)?)?|\.com$|\.co\.uk$)~', '', $url);
'hat'