如何从URL中删除除基本URL和第一部分以外的所有部分。零件数量不确定。基本网址是可变的。我尝试了一些正则表达式,但没有成功。
$url = http://www.example.com/part1/part2/part3/part4;
base_url = parse_url($url, PHP_URL_HOST); // Outputs www.example.com
$desired_output = http://www.example.com/part1;
答案 0 :(得分:4)
在这里,我们可以使用带有简单表达式的preg_replace
,也许类似于:
(.+\.com\/.+?\/).+
我们使用以下捕获组捕获所需的输出:
(.+\.com\/.+?\/)
,然后滑动到字符串的末尾并用$1
替换。
$re = '/(.+\.com\/.+?\/).+/m';
$str = 'http://www.example.com/part1/part2/part3/part4';
$subst = '$1';
$result = preg_replace($re, $subst, $str);
echo $result;
jex.im可视化正则表达式:
对于是否所有.com
域,我们都可以使用以下表达式来解决它:
(.+\..+?\/.+?\/).+
$re = '/(.+\..+?\/.+?\/).+/m';
$str = 'http://www.example.com/part1/part2/part3/part4';
$subst = '$1';
$result = preg_replace($re, $subst, $str);
echo $result;