>백엔드 개발 >PHP 튜토리얼 >php截取指定字符串除了正则还有什么方法

php截取指定字符串除了正则还有什么方法

WBOY
WBOY원래의
2016-06-06 20:22:151442검색

$str=system('ping www.baidu.com');

<code>正在 Ping www.a.shifen.com [115.239.210.27] 具有 32 字节的数据: 来自 115.239.210.27 的回复: 字节=32 时间=25ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=25ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=26ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=26ms TTL=54 115.239.210.27 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 25ms,最长 = 26ms,平均 = 25ms Array</code>

我想截取到里面的ip地址([]中的ip)。求问有几种思路。
我只想到了正则。但是正则还没学到。
想写一个小功能,碰到这个问题不会解决了

回复内容:

$str=system('ping www.baidu.com');

<code>正在 Ping www.a.shifen.com [115.239.210.27] 具有 32 字节的数据: 来自 115.239.210.27 的回复: 字节=32 时间=25ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=25ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=26ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=26ms TTL=54 115.239.210.27 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 25ms,最长 = 26ms,平均 = 25ms Array</code>

我想截取到里面的ip地址([]中的ip)。求问有几种思路。
我只想到了正则。但是正则还没学到。
想写一个小功能,碰到这个问题不会解决了

preg_match("/\[(\d+\.\d+\.\d+\.\d+)\]/","正在 Ping www.a.shifen.com [115.239.210.27] 具有 32 字节的数据: 来自 115.239.",$matches);
print_r($matches);

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
用这个找出']'首次出现的位置
然后用
string substr ( string $string , int $start [, int $length ] )
截取字符串

<code><?php $str='正在 Ping www.a.shifen.com [115.239.210.27] 具有 32 字节的数据: 来自 115.239.210.27 的回复: 字节=32 时间=25ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=25ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=26ms TTL=54 来自 115.239.210.27 的回复: 字节=32 时间=26ms TTL=54 115.239.210.27 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 25ms,最长 = 26ms,平均 = 25ms Array';
$str=substr($str,strpos($str,'[')+1,strpos($str,']'));
echo substr($str,0,strpos($str,']'));

//echo 115.239.210.27</code></code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.