有人能告訴我如何去除出現在http://
和/
之間的任何內容嗎?例如,http://something/
或http://something.something.something/
因此它只更改爲/
?如何使用PHP從字符串中刪除主機名?
回答
你想要的東西看起來是$_SERVER['REQUEST_URI']
。或者你可以用parse_url()
或者如果你堅持使用正則表達式,[編輯]不要。
你可以使用parse_url
但那麼你就必須重新建立與不同成分的URL的其餘部分:
$components = parse_url($url);
$result = $components['path'] . '?' .
$components['query'] . '#' .
$components['fragment'];
這絕對是最好的答案,我做的小小更新: '''$ components = parse_url($ url); $ result = $ components ['path']。 (!empty($ components ['query'])?'?'。$ components ['query']:'')。 (!empty($ components ['fragment'])?'#'。$ components ['fragment']:'');'' – Kus
假設你有一個URL工作,不包含一個很長的字符串網址...
$path = parse_url($url, PHP_URL_PATH);
這不會給出假設的預期結果,如果url有查詢字符串和分段。 –
下面將簡單的返回你的URL路徑:
<?php
$urls = array(
'http://something.com/',
'http://something.something.com/',
'http://something.something.com/some/path',
'http://something.something.com/some/path/?query=string',
'http://something.something.com/some/path/?query=string#with-fragment',
);
foreach ($urls as $url) {
var_dump(parse_url($url, PHP_URL_PATH));
}
#=> string(1) "/"
#=> string(1) "/"
#=> string(10) "/some/path"
#=> string(11) "/some/path/"
#=> string(11) "/some/path/"
更重要的是
foreach ($urls as $url) {
$url = parse_url($url);
$ret = $url['path'];
if ($url['query']) $ret .= "?{$url[query]}";
if ($url['fragment']) $ret .= "#{$url[fragment]}";
var_dump($ret);
}
#=> string(1) "/"
#=> string(1) "/"
#=> string(10) "/some/path"
#=> string(24) "/some/path/?query=string"
#=> string(38) "/some/path/?query=string#with-fragment"
:
注意,如果你只是希望剝離URL方案和主機關閉的URL,並且要保持的查詢和片段,您可以使用此,如果你使用的PECL HTTP Extension,您可以使用http_build_url()方法: 「?」
foreach ($urls as $url) {
$url = http_build_url(array_key_intersect(
parse_url($url),
array_flip(array('path', 'query', 'fragment'))
));
var_dump($url);
}
#=> string(1) "/"
#=> string(1) "/"
#=> string(10) "/some/path"
#=> string(24) "/some/path/?query=string"
#=> string(38) "/some/path/?query=string#with-fragment"
$url = "www.domain.com/sds?test=1&test2=2&test3=3";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $query_array);
什麼之前無所謂。將輸出
array {
'test' => string '1' (length=1)
'test2' => string '2' (length=1)
'test3' => string '3' (length=1)
}
$url = "http://php.net/manual/en/function.parse-url.php?arg=value#anchor";
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
上面的示例將輸出:
Array
(
[scheme] => http
[host] => php.net
[path] => /manual/en/function.parse-url.php
[query] => arg=value
[fragment] => anchor
)
請參閱parse-url
指定PHP_URL_SCHEME,PHP_URL_HOST,PHP_URL_PORT,PHP_URL_USER,PHP_URL_PASS,PHP_URL_PATH,PHP_URL_QUERY或之一PHP_URL_FRAGMENT只檢索一個特定的URL組件(除非給出PHP_URL_PORT,在這種情況下返回值將會是一個整數)。
謝謝米勒調整答案 – vnimbala
- 1. 如何使用PHP從字符串中刪除子字符串?
- 2. 如何刪除speacial字符,如:&)(\ /從字符串使用PHP
- 3. 如何使用Powershell腳本從主字符串中刪除子字符串?
- 4. 如何使用NSRegularExpression從字符串中刪除子字符串?
- 5. 如何使用PHP從字符串中刪除過多的字符串?
- 6. 如何從使用PHP的字符串中刪除html效果?
- 7. 使用擦除和刪除從字符串中刪除字符
- 8. 如何從PHP中的字符串中刪除字符?
- 9. 使用PowerShell從文件名中刪除字符的隨機字符串
- 10. 使用Opencart從PHP字符串中刪除字符
- 11. 如何使用php刪除所有utf-8字符串字符串使用php
- 12. 如何使用PHP從字符串中刪除前n個數字字符?
- 13. 如何從php字符串中刪除ascii字符x02?
- 14. 如何從字符串中刪除非文本字符PHP
- 15. PHP如何從字符串中刪除非語言字符?
- 16. 如何從使用JavaScript的字符串中刪除「\」字符?
- 17. 如何使用xslt從字符串中刪除字符?
- 18. 如何從PHP中使用字符串隨機選擇字符?
- 19. 如何從字符串中刪除/刪除最後一個字符php
- 20. 從文件名中刪除字符串
- 21. 如何從每行字符串中刪除最後一個字符使用PHP?
- 22. 如何從字符串中刪除動態字符字符串?
- 23. 從PHP數組中刪除字符串?
- 24. php:從字符串中刪除URL
- 25. PHP從字符串中刪除信息
- 26. PHP從字符串中刪除
- 27. 如何從PHP中的字符串中刪除數字?
- 28. 如何用Regex從文件名中刪除字符串「[xyz]」?
- 29. 從字符串中刪除字符串
- 30. 從字符串中刪除字符串
只有當問題的網址是被訪問的網址... –
是的好點。問題不是很清楚。刪除正則表達式答案後, –
刪除了我的-1。感謝你鼓勵使用'parse_url()'。 –