首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方括号regex php

方括号regex php
EN

Stack Overflow用户
提问于 2013-01-27 21:41:24
回答 1查看 93关注 0票数 0

在php中使用regex如何将每个IP存储到单独的变量中?

它将从如下所示的日志文件中获取内容。

代码语言:javascript
复制
1/27/2013 7:34:14 AM Removed        {109.104.19.75}
1/27/2013 7:34:16 AM Added          {98.119.183.235}
1/27/2013 7:34:17 AM Removed        {98.119.183.235}
1/27/2013 7:34:34 AM Added          {89.155.107.178}
1/27/2013 7:34:35 AM Removed        {89.155.107.178}
EN

回答 1

Stack Overflow用户

发布于 2013-01-27 22:06:21

此脚本读取您的日志文件,并以数组形式返回IP地址。为此,我建议使用数组,因为使用PHP可以比单独的变量更好地处理它:

代码语言:javascript
复制
function readIps($filename, $unique = false) {
    $lines  = file($filename);
    $result = array();

    foreach ($lines as $line) {
        if (preg_match('/\{([^\}]+)\}$/', $line, $matches)) {
            $result[] = $matches[1];
        }
    }

    return $unique ? array_values(array_unique($result)) : $result;
}

此脚本假定您确定每行末尾的括号中只列出了IP地址。如果不是这样,正则表达式还将匹配IP地址以外的其他内容,并且必须更加特殊。

只用你的文件名调用它,你就会得到一个IP列表的列表,只要它出现的频率就会出现。在第二个参数设置为true的情况下调用它,您将获得一个列表,其中每个IP只出现一次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14547961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档