如何从网址字符串中删除端口号?例如:
$string = "http://www.url.com:88";
或
$string = "http://www.url.net:88";
等等。
我试过了:
$string = substr($string, 0, strpos($string, ":", 0));
但是删除了第一个“:”而不是第二个。
答案 0 :(得分:5)
您可以使用parse_url。


 $ urlParts = parse_url(“http://www.url.net:88”);
 print_r($ urlParts);&# xA;


 这将输出:


 Array
(&# xA; [scheme] => http
 [host] => www.url.net
 [port] => 88
)

& #xA;
 然后用unset取消设置端口($ urlParts ['port'])并将其粘合在一起。


 
答案 1 :(得分:0)
如果它是常量端口88
$string = substr($string, 0, -3);
{p>或 ELSE explode()
$explode = explode(":", $string);
$strings = $explode[0].$explode[1];
答案 2 :(得分:0)
尝试
$string = substr($string, 0, strrpos($string, ":", 0));
函数strrpos()搜索"的最后一次出现:"在字符串中。但这只有在URI中确实存在端口号时才有效。 更好地使用正则表达式:
$string = preg_replace('/(\:[0-9])+$/', '', $string)
答案 3 :(得分:0)
这是一种pythonic方式..
$string = "http://www.url.net:88";
$first = strpos($string, ":", 0);
$second = strpos($string, ":", ($first+1));
$string = substr($string,0,$second);
echo $string;
答案 4 :(得分:0)
ReGex时尚:)
$urlWithoutPort = preg_replace('/:[0-9]+/', '', 'http://www.url.net:');