1. 程式人生 > >幾個比較有用的php內建函式

幾個比較有用的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