下午两点,接到公司的面试电话,这次是电话面试,主要问了PHP函数,数据库性能优化,Apache规则等基础、高级的都有的东西,一时间还真有点招架不住。第一个题是关于PHP函数的问题,是要求写一个验证IP地址的函数,当时写的让面试官明显看出漏洞来了,“127.000.00023.0045”这验证吗?囧了~~~
自已一个人在教室没什么事,总结一下,巩固一下,反思一下。写了一个验证IP的isValidIp函数,验证没问题~~~
首先,对字符串中的前置0进行匹配,如果存在则返回false;这里的匹配规则是以“.”为界限的,很明显第一个如果有前置0了怎么办?偶然,ip2long却给我解决了;
然后使用ip2long函数进行测试,这个函数如果对输入的字符串明显不符合ip地址规则,会返回-1,这里判定false时返回false;这里还可以解决第一个的问题,当输入“00012.23.3.4”时,ip2long也会返回-1,这里正好得到验证。
验证测试数据:
1 192.168.034.342 012.23.43.563 123.255.23.344 123.256.34.455 234.-1.234.45
测试无误,可惜面试时没想到~~~~