Heim  >  Artikel  >  Backend-Entwicklung  >  php截取指定字符串除了正则还有什么方法

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

WBOY
WBOYOriginal
2016-06-06 20:22:151418Durchsuche

$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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn