给出以下网址:
http://www.domain.com/reporting/category-breakdown.php?re=updated
我需要删除.php
之后的所有内容可能是“?re = updated”或者可能是其他内容。字符数不会总是相同,但字符串总是以.php结尾。
我该怎么做?
答案 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等等。