搜索
php截取指定字符串除了正则还有什么方法
PHP中文网
PHP中文网 2017-04-10 16:30:25
[PHP讨论组]

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

正在 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

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
伊谢尔伦

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 ] )
截取字符串

大家讲道理
<?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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号