在php中从字符串中删除任何类型的URL?

时间:2014-12-27 17:17:28

标签: php regex

我的数据低于数据。

示例1

From : http://de.example.ch/biz/barbar-vintage-z%C3%BCrich

I want: /biz/barbar-vintage-z%C3%BCrich

如果有

的话
http://www.example.ch/biz/barbar-vintage-z%C3%BCrich

然后     我也想要

 /biz/barbar-vintage-z%C3%BCrich

4 个答案:

答案 0 :(得分:3)

如果您想通过正则表达式执行此操作,则可以使用:

$s = 'http://de.example.ch/biz/barbar-vintage-z%C3%BCrich';
echo preg_replace('~^https?://[^/]+~', '', $s);
//=> /biz/barbar-vintage-z%C3%BCrich

否则,评论说parse_url函数也让你有这个值。

答案 1 :(得分:1)

function getRelativePath($url)
{
    $matches = array();
    if (preg_match('#^(http://|https://)([^./]+\.)+[a-z]{2,3}(/.*)$#', $url, $matches) {
        return $matches[3];
    } else {
        return false;
    }
}

答案 2 :(得分:1)

您可以使用preg_matchpreg_match_all

preg_match('~^https?://[^/]+\K.+~', $data, $matches);

DEMO

答案 3 :(得分:0)

试试这个:

<?php 
$url = 'http://de.example.ch/biz/barbar-vintage-z%C3%BCrich';
echo preg_replace('~^https?://[^/]+~', '', $url);
?>