修剪字符串中的字符

时间:2013-06-26 16:53:42

标签: php trim

给出以下网址:

http://www.domain.com/reporting/category-breakdown.php?re=updated

我需要删除.php

之后的所有内容

可能是“?re = updated”或者可能是其他内容。字符数不会总是相同,但字符串总是以.php结尾。

我该怎么做?

4 个答案:

答案 0 :(得分:1)

要在字符串中查找子字符串的第一个位置,可以在PHP中使用strpos()。

$mystring = 'http://www.domain.com/reporting/category-breakdown.php?re=updated';
$findme   = '.php';
$pos = strpos($mystring, $findme);

之后,您的URL中包含子字符串'.php'的第一个字符的位置。你想得到的URL直到'.php'结束,这意味着你获得的位置为+ 4(子串长度)。为此,您可以使用substr(string,start,length)函数。

substr($mystring, 0, $pos + 4);

你在这里!

答案 1 :(得分:0)

找到第一个indexOf(“。php”),然后使用char 0中的子字符串到你的索引+长度(“.php”);

答案 2 :(得分:0)

3行解决方案:

$str = "http://www.domain.com/reporting/category-breakdown.php?re=updated";
$str = array_shift(explode('?', $str));
echo $str;

注意:这不是万无一失的,在某些情况下可能会失败,但对于您提到的那种网址,这可行。

答案 3 :(得分:0)

以下是使用PHP获取URL的非查询字符串部分的另一种方法:

$url = 'http://www.domain.com/reporting/category-breakdown.php?re=updated';
$parsed = parse_url($url);
$no_query_string = $parsed['scheme'] . '://' . $parsed['hostname'] . $parsed['path'];
// scheme: http, hostname: www.domain.com, path: /reporting/category-breakdown.php

那将处理.php,.phtml,.htm,.html,.aspx等等。

Link to Manual page