zoukankan      html  css  js  c++  java
  • 亲历PHP面试题——写一个验证IP地址的isValidIp函数

      下午两点,接到公司的面试电话,这次是电话面试,主要问了PHP函数,数据库性能优化,Apache规则等基础、高级的都有的东西,一时间还真有点招架不住。第一个题是关于PHP函数的问题,是要求写一个验证IP地址的函数,当时写的让面试官明显看出漏洞来了,“127.000.00023.0045”这验证吗?囧了~~~

      自已一个人在教室没什么事,总结一下,巩固一下,反思一下。写了一个验证IP的isValidIp函数,验证没问题~~~

    <?PHP
    
        function isValidIp($str){
            $str = trim($str);
            if(preg_match('/\.0\d*/',$str,$array)){
                return false;
            }
            if(ip2long($str) == -1){
                return false;
            }
            return true;
        }
        $ip = "109.254.34.33";
        if(isValidIp($ip)){
            echo "ol";
        }else {
            echo 'Not';
        }
    
    ?>

      首先,对字符串中的前置0进行匹配,如果存在则返回false;这里的匹配规则是以“.”为界限的,很明显第一个如果有前置0了怎么办?偶然,ip2long却给我解决了;

      然后使用ip2long函数进行测试,这个函数如果对输入的字符串明显不符合ip地址规则,会返回-1,这里判定false时返回false;这里还可以解决第一个的问题,当输入“00012.23.3.4”时,ip2long也会返回-1,这里正好得到验证。

      验证测试数据:

    1   192.168.034.34
    2   012.23.43.56
    3   123.255.23.34
    4   123.256.34.45
    5   234.-1.234.45

      测试无误,可惜面试时没想到~~~~

  • 相关阅读:
    subprocess模块
    面向对象进阶
    python---面向对象学习
    vim命令---存阅
    python基础-软件目录开发规范
    装饰器、迭代器、生成器
    Python基础类型
    使用Git来撤销修改
    使用Git去管理修改
    了解Git的工作区和暂存区
  • 原文地址:https://www.cnblogs.com/picaso/p/2511841.html
Copyright © 2011-2022 走看看