代码级别的小优化之一:优先使用php内置函数
以下几个是可以用到内置函数的场景
1.filter_var函数
比如用在验证输入文本是不是邮箱地址:filter_var('[email protected]',FILTER_VALIDATE_EMAIL);返回的值是匹配到正确的邮箱地址的结果
类似的还有网址的验证filter_var('http://www.baidu.com',FILTER_VALIDATE_URL);
2.prase_url函数
解析url 返回各个组成部分
$url = 'https://www.baidu.com/web/http/index.html?a=add&b=bad';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
以上结果会输出:
Array ( [scheme] => https [host] => www.baidu.com [path] => /web/http/index.html [query] => a=add&b=bad ) /web/http/index.html
生成 URL-encode 之后的请求字符串
当我们过滤url传递过来的参数后,可以将这些参数以数组的形式传入http_build_query()来构建出query参数:
$url="https://www.baidu.com";
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
$query=http_build_query($data);
$uri=$url.'?'.$query;
echo $uri;
?>
4.exif_imagetype()
判断一个图像的类型
有时候我们会写一个自定义函数来判断一个图片的后缀,但是有些情况下,你修改了图片的后缀依然能用,但是图片的真正的后缀我们缺不知道了,该函数能够获取到图片信息的真正的文件类型。如下:
//去一个png图片来实验
$image='./1.png';
$type=exif_imagetype($image);
var_dump($type);//结果返回3 表示png文件类型
?>
此时将该图片文件的后缀改为jpg,改图片仍然能正常使用,但是该函数返回的结果仍然是3,定义有以下常量,并代表了 exif_imagetype() 可能的返回值:
该函数用于对判断图片类型有较高要求的情况,另外getimagesize()函数返回的结果中的第三个参数跟exif_imagetype()返回的结果是一样的,但是exif_imagetype()函数要快得多,所以推荐使用exif_imagetype()函数。
note:使用该函数必须开启extension=php_exif.dll 拓展 而且必须在extension=php_mbstring.dll之后!否则会报错:Call to undefined function exif_imagetype()..
5.$_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
比较经常用到的有:
$_SERVER['REMOTE_ADDR']:浏览当前页面的用户的 IP 地址。
$_SERVER['HTTP_HOST']:当前请求头中 Host: 项的内容,如果存在的话。
$_SERVER['SERVER_ADDR']:当前运行脚本所在的服务器的 IP 地址。
$_SERVER['REQUEST_TIME_FLOAT']:请求开始时的时间戳,微秒级别的精准度。 自 PHP 5.4.0 开始生效。
$_SERVER[SERVER_NAME']:当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。
Note: 在 Apache 2 里,必须设置 UseCanonicalName = On 和 ServerName。 否则该值会由客户端提供,就有可能被伪造。 上下文有安全性要求的环境里,不应该依赖此值。
。。。
其他比较经常用到的内置函数可以参考:http://www.php.cn/php-weizijiaocheng-370987.html