所以,我有這樣的URL字符串中:如何提取PHP中的一部分URL以移除特定部分?
http://www.domain.com/something/interesting_part/?somevars&othervars
在PHP
,我如何能夠擺脫所有,但interesting_part
?
所以,我有這樣的URL字符串中:如何提取PHP中的一部分URL以移除特定部分?
http://www.domain.com/something/interesting_part/?somevars&othervars
在PHP
,我如何能夠擺脫所有,但interesting_part
?
...
$url = 'http://www.domain.com/something/interesting_part/?somevars&othervars';
$parts = explode('/', $url);
echo $parts[4];
輸出:
interesting_part
我只是寫這個,因爲你貼:D – 2010-05-20 11:59:07
哦,聰明!我正在嘗試這個,非常感謝! – achairapart 2010-05-20 12:00:16
@achairapart:不客氣:) – Sarfraz 2010-05-20 12:00:45
如果有趣的部分是永遠路徑的最後一部分:
echo basename(parse_url($url, PHP_URL_PATH));
[+]請注意,這隻能在沒有index.php
或?
之前的任何其他文件名。這一個將適用於這兩種情況:
$path = parse_url($url, PHP_URL_PATH);
echo ($path[strlen($path)-1] == '/') ? basename($path) : basename(dirname($path));
您應該使用parse_url做URL操作。首先解析它,然後做你想要的改變,例如使用爆炸,然後把它放回到一起。
$uri = "http://www.domain.com/something/interesting_part/?somevars&othervars";
$uri_parts = parse_url($uri);
/*
you should get:
array(4) {
["scheme"]=>
string(4) "http"
["host"]=>
string(14) "www.domain.com"
["path"]=>
string(28) "/something/interesting_part/"
["query"]=>
string(18) "somevars&othervars"
}
*/
...
// whatever regex or explode (regex seems to be a better idea now)
// used on $uri_parts[ "path" ]
...
$new_uri = $uri_parts[ "scheme" ] + $uri_parts[ "host" ] ... + $new_path ...
是的,沒錯:首先是parse_url,然後按照@Sarfraz的建議展開路徑。感謝大家的幫助,非常感謝! – achairapart 2010-05-20 12:35:04
編輯一些新的東西,爲更好的! – 2010-05-20 12:41:39
這裏是例如使用parse_url()
覆蓋特定部分:
<?php
$arr = parse_url("http://www.domain.com/something/remove_me/?foo&bar");
$arr['path'] = "/something/";
printf("%s://%s%s?%s", $arr['scheme'], $arr['host'], $arr['path'], $arr['query']);
哦,我忘了引用網址,我很抱歉。感謝您糾正這一點,費利克斯。 – achairapart 2010-05-20 12:04:08
如果有任何問題,您應在每個問題中標記正確答案。 – 2010-05-20 12:50:12