我有一个主持人= http://172.19.242.32:1234/
我的目标是仅获取IP = 172.19.242.32
我试过
$ip = trim($host,'http://');
$ip = str_replace("/", "",$ip);
$ip = explode(":",$ip);
$ip = $ip[0];
我按预期获得了我的IP,但我不能再这样做,因为它会破坏IPv6格式。
有什么替代方法?有什么建议吗?
答案 0 :(得分:4)
使用parse_url():您可以省略PHP_URL_HOST
以返回所有组件的数组。
<?php
$host = 'http://172.19.242.32:1234/';
echo parse_url($host, PHP_URL_HOST);
返回
172.19.242.32
答案 1 :(得分:1)
$url="http://172.19.242.32:1234/";
$regexIpAddress = '/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:\/\d{2})?/';
preg_match_all($regexIpAddress, $url, $ip_match);
var_dump($ip_match[0]);
此reg表达式匹配函数将从任何字符串中提取ip地址。
答案 2 :(得分:-2)
我认为正确的方式是{{1}}?它应该只返回IP