如何将给定的网址转换为基本网址? 这意味着如果我有“http://test.com/folder/it.html?gsa=5”,脚本应该返回“http://test.com/folder/”。将给定的网址转换为基本网址
我想:
preg_match('~.*/~', $cur_url, $match);
$base=($match[0]=='http://') ? $cur_url : $match;
不工作好。
如何将给定的网址转换为基本网址? 这意味着如果我有“http://test.com/folder/it.html?gsa=5”,脚本应该返回“http://test.com/folder/”。将给定的网址转换为基本网址
我想:
preg_match('~.*/~', $cur_url, $match);
$base=($match[0]=='http://') ? $cur_url : $match;
不工作好。
使用一个正则表达式字符串,它保留.com转发的所有内容。只需设置它就可以使用任何可能的网站结尾。将很快用样本字符串更新。
- 编辑 -
这个PHP正则表达式的字符串工作从任何网址,以获取基址(IVE测试)。
![a-zA-Z]+(.com/|.ca/|.gov/)!
注:此字符串设定为只与.COM,.CA和.gov领域的工作,但你可以在括号他们分开添加其他|。
- 编辑 -
重读你的帖子,我已经设计了另一个字符串,如果你想在URL一切,除了在最后的文件。
!([a-zA-Z]*+(.com/|.ca/|.gov/))+([a-zA-Z/]*[/])!
注:如果您使用与不具有对最终文件的URL,该目录必须有斜杠静止或最后的目录将被削减为好。
尝试parse_url
从php.net样品
<?php $url = 'http://username:[email protected]/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH); ?>
回报
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
PATH也保存文件在最后。我必须被删除。另外我需要生成一个基础url,而不仅仅是路径。 – barakuda28
这是重新组装基本URL的很多工作。问题看起来像OP想修剪'it.html',并保留资源定位器的基础“路径”。 – mario
@mario据我所知,他要求返回'http:// test.com/folder /' –
那么,如果你想从URL
?hello=somethin&something=somethingelse
的以下可能的工作:
$fullurl = $_SERVER['REQUEST_URI'];
$urlarray = explode($fullurl, "?");
$urlnoget = $urlarray[0];
是会爆炸的URL到每一个位?没有?在一个实际的文件/ fooledr名称,所以它会清除$ _GET的网址。
您是否考虑过使用JavaScript?
对不起,如果有更简单的方法,但这是我所知道的。
'explode()'是一个过度使用的解决方法。使用'strtok()'。 – mario
我从来没有听说过这样的功能,以及我在这里相当新。 PS:如果我的帖子有用,请+1 – user115422
实际上,基本URL是'http:// test.com /'。无论如何,[你有什么尝试](http://www.whathaveyoutried.com)? – Matt
你想从最后/字符去掉? SUBSTR? – mlemay
我试过这段代码,但它似乎没有正确工作。 preg_match('〜。* /〜',$ cur_url,$ match); $ base =($ match [0] =='http://')? $ cur_url:$ match; @Matt,不,基地址是带有路径的网址,但文件,查询和片段已被删除。 – barakuda28