幾個比較有用的php內建函式
程式碼級別的小優化之一:優先使用php內建函式
以下幾個是可以用到內建函式的場景
1.filter_var函式
比如用在驗證輸入文字是不是郵箱地址:filter_var('[email protected]',FILTER_VALIDATE_EMAIL);返回的值是匹配到正確的郵箱地址的結果
類似的還有網址的驗證filter_var('http://www.baidu.com',FILTER_VALIDATE_URL);
2.prase_url函式
解析url 返回各個組成部分
<?php
$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
3.http_build_query
生成 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()
判斷一個影象的型別
有時候我們會寫一個自定義函式來判斷一個圖片的字尾,但是有些情況下,你修改了圖片的字尾依然能用,但是圖片的真正的字尾我們缺不知道了,該函式能夠獲取到圖片資訊的真正的檔案型別。如下:
<?php
//去一個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