PHP基礎函數彙總

string函數庫

int strlen(string $str):返回給定字符串的長度
int strpos(string $str1,string $str2):計算$str2$str1中首次出現的位置
string strstr(string $str1,string $str2):返回$str1中第一個$str2開始到最後的字符串(包含$str2),別名strchr()
string stristr:strstr()函數忽略大小寫的版本
int strrpos(string $str1,string $str2):計算$str2$str1中最後一次出現的位置
string strrchr(string $str1,string $str2):返回$str1中最後一個$str2開始到最後的字符串(包含$str2)
array explode(string $delimiter,string $str):將$str$delimiter爲拆分標準拆分成多個字符串,並以一個數組返回
string implode(string $glue,array $arr):將$arr中的每個元素用$glue連接起來
string substr(string $str,int $start,[int $len]):返回$str$start位置開始的長度爲$len的字符串,如果$len沒有,則返回餘下所有
string/array str_replace(string/array $search,string/array $replace,string/array $subject[,int &$count]):返回值類型取決於$subject類型,用$replace替換$subject中的$search
string strtoupper(string $str):將$str中的字母轉換成大寫
string strtolower(string $str):將$str中的字母轉化成小寫
string ucwords(string $str):將$str中的單詞首字母大寫
string ucfirst(string $str):將$str中的首字母大寫
string strrev(string $str):將$str反轉
string md5(string $str):計算$str的md5散列值,即加密
string sha1(string $str):計算$str的sha1散列值,即加密
string strip_tags(string $str):去除$str中html和php標籤,很有用
string rtrim(string $str[,string $character_mask='\t\n\r\0\x0B']):刪除$str末端的空白字符,通過第二個參數還可以指定刪除某些字符
string trim(string $str[,string $character_mask]='\t\n\r\0\x0B'):刪除$str首尾端的空白字符,通過第二個參數還可以指定刪除某些字符

日期時間函數庫

int time():返回當前的Unix時間戳(格林威治時間1970-01-01 00:00:00到當前時間的秒數)
string date(string $format[,int $timestamp=time()]):按照$format格式將時間戳轉化成字符串時間,通常格式是$format='Y-m-d H:i:s'
int strtotime(string $str[,int now=time()]):將任意英文格式的字符串時間轉變成時間戳
string/float microtime([bool $get_as_float]):返回當前時間的Unix時間戳和微秒數,沒有$get_as_float參數,則返回string '時間戳部分 微秒數部分',可以通過explode()函數分開進行計算時間戳部分和微秒數部分;如果有$get_as_float參數且爲true,則返回float 時間戳.微秒數 ,則直接相減即可

array函數庫

int count(array/object $var[,int $mode=COUNT_NORMAL]):獲取數組的長度或對象的屬性個數,如果$mode爲COUNT_RECURSIVE或1,則可以遞歸計算多維數組的元素個數
int/string array_search(mixed $needle,array $haystack[,bool $strict=false]):返回值類型取決於查找的數組$haystack是索引數組還是關聯數組。如果$stricttrue,則不僅判斷值,還判斷類型,對於對象,必須是同一個實例!
bool array_key_exits(int/string $needle,array $haystack):判斷$needle是不是$haystack的鍵
array array_merge(array $arr1,array $arr2,...):將$arr2追加到$arr1後面形成一個新的數組。如果$arr2中有與$arr1中相同的字符串鍵,則$arr2中的該鍵對應的值會覆蓋$arr1中的該字符串鍵;如果$arr2中有與$arr1中相同的整型鍵,則$arr2中的該鍵對應的值不會覆蓋$arr1中該整形鍵,而是繼續按照整型鍵順序(比如說,$arr1中有兩個整型鍵01$arr2中也有兩個整型鍵01,那麼merge之後,$arr2中原來的兩個整型鍵就會變成23;再比如說,$arr1中沒有整型鍵,$arr2中有兩個整型鍵13,那麼merge之後,$arr2中原來兩個整型鍵就會變成01)追加在後面
int array_unshift(array &$arr,mixed $val1[,mixed $val2,...]):在$arr頭中依次插入$valn、...、$val2$val1,並重新排序整型鍵,字符串鍵不變,返回$arr新長度
int array_push(array &$arr,mixed $val1[,mixed $val2,...]):在$arr尾中依次插入$val1$val2、...、$valn,返回$arr新長度。其實如果是在尾中插入元素,則可以直接$arr[]=$val
mixed array_pop(array &$arr):將$arr最後一個元素彈出,並返回彈出的那個元素值
mixed array_push(array &$arr):將$arr最前一個元素彈出,並返回彈出的那個元素值。且重新排序整型鍵,字符串鍵不變
array array_reverse(array $arr[,bool $preserve_keys=false]):將$arr反轉,默認整型鍵重新排序,字符串鍵不變,如果$preserve_keys=true,則整型鍵和字符串鍵都不變,並返回
array array_unique(array $arr[,boo $sort_flags=SORT_STRING]):去除$arr中重複的值。鍵名保留問題,兩個重複值有則不同鍵名,到底保留那個鍵名呢?並不是簡單的保留在前的,而是將 $arr中所有值按照字符串排序,然後取靠前的那個值的鍵!強調一遍,值都先轉成string類型的,再排序並比較是否相同,也就是所int 4與string '4'是同一個值!
void unset(mixed $val[,mixed $val...]):釋放給定的變量,注意unset只能釋放數組元素,而不能釋放一個數組
mixed end(array &$arr):將數組內部指針移動到最後一個元素上,並返回最後一個元素值
bool sort(array &$arr[,$sort_flags=SORT_REGULAR]):將數組排序(低到高),成功返回true,失敗返回false。排序之後數組統一用整型鍵排序
bool asort(array &$arr[,$sort_flags=SORT_REGULAR]):將數組排序(低到高),成功返回true,失敗返回false。排序之後數組鍵不變
bool arsort(array &$arr[,$sort_flags=SORT_REGULAR]):同asort,只不過是高到低
bool ksort(array &$arr[,$sort_flags=SORT_REGULAR]):按照鍵排序(低到高),排序之後數組鍵不變
bool ksort(array &$arr[,$sort_flags=SORT_REGULAR]):按照鍵排序(高到低),排序之後數組鍵不變
string serialize(mixed $val):將$val序列化,$val不能是資源類型的
mixed unserialize(string $val):將$val反序列化

數學函數庫

int/float abs(int/float $num):返回$num的絕對值
float round(float $num[,int $precision=0] [,int $mode]):對$num進行四捨五入,保留小數點後$precisionfloat ceil(float $num):向上取整
float floor(float $num):向下取整
int/float/string max(int/float/string $val1,int/float/string $val2[,...]):返回最大值。如果只有一個參數,且爲array,則返回該數組中元素值最大的那個元素。min()找出最小值
float sqrt(float $num):求$num平方根,$num爲負返回NAN
int rand(int $min,int $max)/int rand(void):返回$min$max之間的隨機整數/返回0到getrandmax()(在win上,爲32767)之間的隨機整數。mt_rand()函數同理,效果更好

MySQL擴展函數庫[PHP5.5.0後廢棄]

resource mysql_connect([string $server[,string $username [,string $password[,bool $new_link [,int $client_flags]]]]]):打開一個新連接或者重複使用舊連接
resource mysql_query(string $sql[,resource $link_identifier=NULL]):發送一條sql語句
bool mysql_select_db(string $db_name[,resource $link_identifier]):選擇數據庫
bool mysql_free_result(resource $result):釋放結果集內存
bool mysql_close([resource $link_identifier=NULL]):關閉一個非持久mysql連接
int mysql_affected_rows([resource $link_identifier=NULL]):前一mysql操作所影響的記錄數
string mysql_client_enconding([resource $link_identifier=NULL]):返回MySQL服務器中character_set變量的值,即客戶端字符集
bool mysql_data_seek(resource $result,int $row_number):移動結果集中的指針
string mysql_error([resource $link_identifier]):返回一個mysql操作的錯誤信息
int mysql_insert_id([resource $link_identifier]):獲取上一步insert操作產生的id
int mysql_num_rows(resource $result):獲取結果集中的記錄數
int mysql_num_fields(resource $result):獲取結果集中的字段數
array mysql_fetch_array/row/assoc/object(resource $result):從結果集中取出一行
resource mysql_pconnect():打開mysql持久連接,mysql_close()無法關閉該連接

PDO擴展函數庫

PDO類

object(PDO) __construct(string $dsn[,string $username[,string $password[,array $driver_options]]]):創建一個表示連接請求的PDO實例
bool setAttribute(int $attribute,mixed $value):設置數據庫連接屬性。比如說$attribute=PDO::ATTR_CASE表示設置結果集下標大小寫,相應的值就是$value=PDO::CASE_LOWER(小寫)、$value=PDO::CASE_UPPER(大寫)、$value=PDO::CASE_NATURAL(自然)
object(PDOStatement) query(string $sql):執行一條sql語句,返回PDOStatement對象,通常是執行select語句
int exec(string $statement):執行一條SQL語句,並返回受影響的行數,通常執行insert、delete、update語句,query()方法用來執行select語句!
object(PDOStatement) prepare(string $statement[,array $driver_options=[]]):批量執行sql語句(不管是insert、delete、update、select),返回一個PDOStatement對象,然後用其execute()方法,執行$statement這條預處理sql語句(包含佔位符?)
PDOStatement類

bool setFetchMode(int $mode):設置結果集模式,$mode的值有PDO::FETCH_ASSOC(關聯數組)、PDO::FETCH_NUM(索引數組)、PDO::FETCH_BOTH(混合數組)、PDO::FETCH_OBJ(匿名對象)
mixed fetch([int $fetch_style]):返回結果集中的某一個條記錄,$fethc就類似上面的$mode作用
mixed fetchAll([int $fetch_style]):返回包含結果集所有記錄形成的數組
int rowCount(void):返回上一個sql語句(insert、delete、update)所影響的記錄數
int execute([array,$input_parameters]):執行一條預處理語句

目錄/文件函數庫

目錄函數

resource opendir(string $path):打開$path目錄,返回一個資源句柄
string readdir(resource $dir_handler):返回$dir_handler中下一個文件的文件名
array scandir(string $path[,int $sorting_order]):遍歷$path中所有的子目錄(不遞歸)或文件,默認以字母升序排序,$sorting_order=1則降序
bool is_dir(string $filename):判斷文件名是否是一個目錄。注意,如果$filename是一個相對路徑,則相對當前路徑
string dirname(string $path):返回$path的目錄部分(去掉最後一個/及其後面的內容)。如果沒有/(單獨就一個文件),則返回.(表示當前目錄)。win中/和\都可以,Linux中只能是/表示路徑
bool mkdir(string $path[,int $mode=0777]):創建$path目錄。比如說,日期爲目錄名,mkdir(date('Ymd'));
bool file_exists(string $filename):判斷$filename是否存在,$filename可以是目錄或文件
bool rename(string $oldname,string $newname):將$oldname重命名爲$newname
bool rmdir(string $dirname):刪除$dirname。注意$dirname必須是空目錄
void closedir([resource $dir_handle]):關閉打開的目錄句柄
文件函數

bool is_file(string $filename):判斷$filename是否爲一個正常的文件
resource fopen(string $filename,string $mode):打開一個本地文件或URL,$mode指定打開的模式。r只讀方式打開,文件指針指向文件頭;r+讀寫方式打開,文件指針指向文件頭;w寫入方式打開,文件指針指向文件頭,並將文件大小截爲0,且如果文件不存在則嘗試創建之;w+讀寫方式打開,文件指針指向文件頭,並將文件大小截爲0,且如果文件不存在則嘗試創建之;a寫入方式打開,文件指針指向文件尾,且文件不存在則嘗試創建之;a+讀寫方式打開,文件指針指向文件尾,且文件不存在則嘗試創建之。返回文件指針資源
int fwrite(resource $handlestring $content):$handlefopen返回的文件指針資源,$content是要寫入的內容。返回寫入的字符數
bool fclose(resource $handle):關閉$handle
string fread(resource $handle,int $length):讀取$length個字節長度的字符停止。fread兩種情況下停止讀,一是讀取$length字節長度,二是讀到文件末尾EOF。返回讀取的字符串
string fgets(resource $handle):讀取$handle的一行
string fgetss(resource $handle):讀取$handle的一行,並過濾掉html和php標記
int filesize(string $filename):獲取$filename的大小
int file_put_contents(string $filename,string/resource/array $content[,int $flags=0]):等效於依次調用fopen()、fwrite()、fclose()方法,$flags=FILE_APPEND表示追加
string file_get_contents(string $filename):等效於依次調用fopen()、fread()、fclose()

圖形圖像函數庫

驗證碼原理:生成隨機串,存入session,並利用圖形圖像庫,將其描繪成圖像的形式輸出,用戶查看圖片辨別隨機串,輸入與session中的隨機串進行比對

resource imagecreatetruecolor(int $width,int $height):創建一個寬$width,高$height的黑色圖像。返回圖像資源$image。注意,必須按照GD庫,而且版本要高於2.0
int imagecolorallocate(resource $image,int $red_RGB,int $green_RGB,int $blue_RGB):給$image分配可以使用的顏色,RGB色,$red_RGB表示生成的顏色的紅色成分(0-2550x00-0xff),$green_RGB$blue_RGB同理。返回一個整型標識符,表示某種顏色
bool imagefilledrectangle(resource $image,int $x1,int $y1,int $x2,int $y2,int $color):在$image上畫一個矩形並用$color填充,($x1,$y1)表示該矩形的左上角座標,($x2,$y2)表示該矩形的右下角座標,$image的左上角爲座標原點
bool imageline(resource $image,int $x1,int $y1,int $x2,int $y2,int $color):在$image上畫一條$color色的線段。$color通常通過隨機分配的方式,即imagecolorallocate(resource $image,rand(0,255),rand(0,255),rand(0,255))。
bool imagesetpixel(resource $image,int $x,int $y,int $color):在$image上畫一個$color色的點
array imagettftext(resource $image,float $size,float $angle,int $x,int $y,int $color,string $fontfile,string $text):將UTF-8編碼的$text寫到$image上。返回包含該寫在$image上的文字信息,共有8個元素
bool imagestring(resource $image,int $font,int $x,int $y,string $text,int $color):水平畫一行字符串,相比imagettftext()要簡單得多,功能也弱些
bool imagegif/imagepng/imagejpeg(resource $image[,string $filename=NULL]):輸出$image到瀏覽器或寫入文件(指定$filename時)。如果輸出到瀏覽器,則通常要再前面通過header('Content-Type: image/gif');指定,且之前不能有任何字符輸出。
bool imagedestroy(resource $image):銷燬$image(回收$image所佔的資源)
resource imagecreatefromjpeg/png/gif(string $filename):由文件或URL創建圖像
int imagesx(resource $image):獲取圖像的寬度
int imagesy(resource $image):獲取圖像的高度
bool imagecopyresampled(resource $dst_image,resource $src_image,int $dst_x,int $dst_y,int $src_x,int $src_y,int $dst_w,int $dst_h,int src_w,int $src_h):將$src_image中的一部分拷貝到$dst_image中
bool imagecopyresized(resource $dst_image,resource $src_image,int $dst_x,int $dst_y,int $src_x,int $src_y,int $dst_w,int $dst_h,int src_w,int $src_h):沒有imagecopyresampled()質量高
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章