熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

基於php常用函數總結(數組,字符串,時間,文件操作)

2022-06-13   來源: PHP編程 

  數組:【重點
implode(分隔arr) 把數組值數據按指定字符連接起來
例如
$arr=array();
$str=implode($arr);
explode([分隔]arr)按指定規則對一個字符串進行分割返回值為數組 別名join
array_merge()合並一個或多個數組
array_combine(array keys array values) 創建一個數組用一個數組的值作為其鍵名另一個數組的值作為其值
例如
$a = array(greenredyellow);
$b = array(avocadoapplebanana);
$c = array_combine($a $b);
print_r($c);
/* Outputs:
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
*/
array_push(arrstr) 將一個或多個單元壓入數組的末尾(入棧)
array_unique(arr)移除數組中重復的值
array_search() 在數組中搜索給定的值如果成功則返回相應的鍵名
array_values()返回數組中所有的值
array_keys() 返回數組中所有的鍵名
count(arr) 計算數組中的單元數目或對象中的屬性個數sizeof()
is_array(arr) 檢測變量是否是數組
sort(arr) 對數組排序
array_flip(arr) 交換數組中的鍵和值
注意 trans 中的值需要能夠作為合法的鍵名例如需要是 integer 或者 string如果值的類型不對將發出一個警告並且有問題的鍵/值對將不會反轉
key(arr)返回數組中當前元素的鍵名
current(arr) 返回當前指針所指向的值
next 返回下一個指針所指向的值
例如

復制代碼 代碼如下:
$array = array (
fruit => apple
fruit => orange
fruit => grape
fruit => apple
fruit => apple
);
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == apple) {
echo key($array)<br>;
}
next($array);
}

  
reset(arr)數組的內部指針指向第一個單元
array_chunk( array input int size [ bool preserve_keys])) 將一個數組分割成多個
將一個數組分割成多個數組其中每個數組的單元數目由 size 決定最後一個數組的單元數目可能會少幾個得到的數組是一個多維數組中的單元其索引從零開始
將可選參數 preserve_keys 設為 TRUE可以使 PHP 保留輸入數組中原來的鍵名如果你指定了 FALSE那每個結果數組將用從零開始的新數字索引默認值是 FALSE

  字符串【重點
trim(str) 消除字符串兩邊的空格
rtrim()
addslashes在指定預定義字符前加
strlen(str) 取字符串長度
substr(strstartlength) 截取指定字符串中指定長度的字符
strstr(strsearch)函數用於獲取一個指定字符串在另一個字符串中首次出現的位置到後者末尾的子字符串與 strchr相同
strpos(strsearch) 查找字符串中某字符第一次出現的位置
str_replace(searchreplacestr) 字符串替換
ucfirst(str) 將字符串第一個字符大寫
strtolower 變小寫
ucwords(str) 將字符串每個字的第一個字母大寫
strcmp(strstr)函數用來對兩個字符串進行比較
substr_count()函數檢索子串出現的次數
正則相關字符串函數:
preg_match(patternsubjectmatches) 在subject字符串中搜索與 pattern 給出的正則表達式相匹配的內容匹配後的結果存放在matches裡邊matches[]全部匹配內容matches[]第一個模式單元 matches[]第二模式單元以此類推
preg_match_all(patternsubjectmatches)全局匹配其余的preg_match函數相似
preg_replace(patternreplacementstr) 執行正則表達式的搜索和替換三種[stringstring][arraystring][arrayarray]
preg_split(patternstr) 用正則表達式分割字符串
preg_grep(patternarray)用正則表達式匹配數組的值返回一個新的數組信息

  時間【重點
PHP的日期時間函數date()

echo date(Ymj);

echo date(ynj);

大寫Y表示年四位數字而小寫y表示年的兩位數字
小寫m表示月份的數字(帶前導)而小寫n則表示不帶前導的月份數字
echo date(YMj);
Feb
echo date(Ymd);

大寫M表示月份的個縮寫字符而小寫m則表示月份的數字(帶前導);
沒有大寫的J只有小寫j表示月份的日期無前導o若需要月份帶前導則使用小寫d
echo date(YMj);
Feb
echo date(YFjS);
Februaryth
大寫M表示月份的個縮寫字符而大寫F表示月份的英文全寫(沒有小寫f)
大寫S表示日期的後綴比如“st”“nd”“rd”和“th”具體看日期數字為何

  小結
表示年可以用大寫的Y和小寫y;
表示月可以用大寫F大寫M小寫m和小寫n(分別表示字符和數字的兩種方式);
表示日可以用小寫d和小寫j大寫S表示日期的後綴

  時:分:秒
默認情況下PHP解釋顯示的時間為“格林威治標准時間”與我們本地的時間相差個小時
echo date(g:i:s a);
:: am
echo date(h:i:s A);
:: AM
小寫g表示小時制無前導而小寫h則表示有前導小時制
當使用小時制時需要表明上下午小寫a表示小寫的“am”和“pm”大寫A表示大寫的“AM”和“PM”
echo date(G:i:s);
::
大寫G表示小時制的小時數但是不帶前導的使用大寫的H表示帶前導的小時制小時數
小結
字母g表示小時不帶前導字母h表示小時帶前導
小寫gh表示小時制大寫GH表示小時制

  閏年星期
echo date(L);
今年是否閏年
echo date(l);
今天是Tuesday
echo date(D);
今天是Tue
大寫L表示判斷今年是否閏年布爾值為真返回否則為
小寫l表示當天是星期幾的英文全寫(Tuesday)
而使用大寫D表示星期幾的個字符縮寫(Tue)
echo date(w);
今天星期
echo date(W);
本周是全年中的第
小寫w表示星期幾數字形式表示
大寫W表示一年中的星期數
echo date(t);
本月是
echo date(z);
今天是今年的第
小寫t表示當前月份又多少天
小寫z表示今天是本年中第幾天

  其他
echo date(T);
UTC
大寫T表示服務器的時間區域設置
echo date(I);

大寫I表示判斷當前是否為夏令時為真返回否則為
echo date(U);

大寫U表示從日到現在的總秒數就是Unix時間紀元的UNIX時間戳
echo date(c);
T::+:
小寫c表示ISO日期日期格式為YYYYMMDD用字母T來間隔日期和時間時間格式為HH:MM:SS時區使用格林威治標准時間(GMT)的偏差來表示
echo date(r);
Tue Feb :: +
小寫r表示RFC日期
小小的date()函數就顯示出了PHP的強大功能和迷人魅力再比較下ASP呵呵
checkdate($month$date$year)
如果應用的值構成一個有效日期則該函數返回為真例如對於錯誤日期此函數返回為假
在日期用於計算或保存在數據庫中之前可用此函數檢查日期並使日期生效

復制代碼 代碼如下:
<?php
// returns false
echo checkdate() ? "valid" : "invalid";
// returns true
echo checkdate() ? "valid" : "invalid";
?>

  
getdate($ts)
在沒有自變量的情況下該函數以結合數組的方式返回當前日期與時間數組中的每個元素代表日期/時間值中的一個特定組成部分可向函數提交可選的時間標簽自變量以獲得與時間標簽對應的日期/時間值
應用此函數來獲得一系列離散的容易分離的日期/時間值

復制代碼 代碼如下:
<?php
// get date as associative array
$arr = getdate();
echo "Date is " $arr[mday] " " $arr[weekday] " " $arr[year];
echo "Time is " $arr[hours] ":" $arr[minutes];
?>

  
mktime($hour $minute $second $month $day $year)
此函數的作用與getdate()的作用相反它由一系列的日期與時間值生成一個UNIX時間標簽(GMT時間日到現在消逝的秒數)不用自變量時它生成當前時間的UNIX時間標簽
用此函數獲得即時時間的UNIX時間標簽這種時間標簽通常用於許多數據庫與程序語言中

復制代碼 代碼如下:
<?php
// returns timestamp for :: Jun
echo mktime();
?>

  
date($format $ts)
此函數將UNIX時間標簽格式化成一個可人為閱讀的日期字符串它是PHP日期/時間API中功能最為強大的函數可用在一系列的修正值中將整數時間標簽轉變為所需的字符串格式
為顯示格式化時間或日期時應用此函數

復制代碼 代碼如下:
<?php
// format current date
// returns "Sep : PM"
echo date("dMY h:i A" mktime());
?>

  
strtotime($str)
此函數將可人為閱讀的英文日期/時間字符串轉換成UNIX時間標簽
應用此函數將非標准化的日期/時間字符串轉換成標准兼容的UNIX時間標簽

復制代碼 代碼如下:
<?php
// returns Sep
echo date("dMy" strtotime("today"));
// returns Sep
echo date("dMy" strtotime("tomorrow"));
// returns Sep
echo date("dMy" strtotime("today + days"));
?>

  
strftime($format$ts)
如前面的setlocale()函數定義的那樣此函數將UNIX時間標簽格式化成適用於當前環境的日期字符串
應用此函數建立與當前環境兼容的日期字符串

復制代碼 代碼如下:
<?php
// set locale to France (on Windows)
setlocale(LC_TIME "fra_fra");
// format month/day names
// as per locale setting
// returns "septembre" and "mardi"
echo strftime("Month: %B ");
echo strftime("Day: %A ");
?>

  
microtime()
如前面的setlocale()函數定義的那樣此函數將UNIX時間標簽格式化成適用於當前環境的日期字符串
應用此函數建立與當前環境兼容的日期字符串

復制代碼 代碼如下:
<?php
// get starting value
$start = microtime();
// run some code
for ($x=; $x<; $x++) {
$null = $x * $x;
}
// get ending value
$end = microtime();
// calculate time taken for code execution
echo "Elapsed time: " ($end $start) " sec";
?>

  
gmmktime($hour $minute $second $month $day $year)
此函數由一系列用GMT時間表示的日期與時間值生成一個UNIX時間標簽不用自變量時它生成一個當前GMT即時時間的UNIX時間標簽
用此函數來獲得GMT即時時間的UNIX時間標簽

復制代碼 代碼如下:
<?php
// returns timestamp for :: Jul
echo gmmktime();
?>

  
gmdate($format $ts)
此函數將UNIX時間標簽格式化成可人為閱讀的日期字符串此日期字符串以GMT(非當地時間)表示
用GMT表示時間標簽時應用此函數

復制代碼 代碼如下:
<?php
// format current date into GMT
// returns "Sep : AM"
echo gmdate("dMY h:i A" mktime());
?>

  
date_default_timezone_set($tz)date_default_timezone_get()
此函數此後所有的日期/時間函數調用設定並恢復默認的時區
此函數僅在PHP +中有效
此函數是一個方便的捷徑可為以後的時間操作設定時區

復制代碼 代碼如下:
<?php
// set timezone to UTC
date_default_timezone_set(UTC);
?> 復制代碼 代碼如下:
<?php
//今天
$today = date("Ymd");
//昨天
$yesterday = date("Ymd" strtotime(date("Ymd")));
//上周
$lastweek_start = date("Ymd H:i:s"mktime( date("m")date("d")date("w")+date("Y")));
$lastweek_end = date("Ymd H:i:s"mktime(date("m")date("d")date("w")+date("Y")));
//本周
$thisweek_start = date("Ymd H:i:s"mktime( date("m")date("d")date("w")+date("Y")));
$thisweek_end = date("Ymd H:i:s"mktime(date("m")date("d")date("w")+date("Y")));
//上月
$lastmonth_start = date("Ymd H:i:s"mktime( date("m")date("Y")));
$lastmonth_end = date("Ymd H:i:s"mktime(date("m") date("Y")));
//本月
$thismonth_start = date("Ymd H:i:s"mktime( date("m")date("Y")));
$thismonth_end = date("Ymd H:i:s"mktime(date("m")date("t")date("Y")));
//本季度未最後一月天數
$getMonthDays = date("t"mktime( date(n)+(date(n))%date("Y")));
//本季度/
$thisquarter_start = date(Ymd H:i:s mktime( date(n)(date(n))%date(Y)));
$thisquarter_end = date(Ymd H:i:s mktime(date(n)+(date(n))%$getMonthDaysdate(Y)));

  文件操作【重點
file_exists(filename) 文件或目錄是否存在
filesize(filename) 取得文件大小
pathinfo(filename) 返回目錄名基本名和擴展名的關聯數組
$path_parts = pathinfo("/www/htdocs/indexhtml");
echo $path_parts["dirname"] "n";
echo $path_parts["basename"] "n";
echo $path_parts["extension"] "n";
/www/htdocsindexhtmlhtml
mkdir(dirname) 創建目錄
rmdir(dirname) 刪除空目錄
fopen(filename模式) 打開文件
fclose(fp) 關閉文件
fwrite(fpstrlength) 寫入文件
file_put_contents(filenamecontent) 把內容存成文件
file_get_contents(filename) 從文件讀出內容
fread(fplength) 讀取文件
fgets() 從文件指針中讀取一行
fgetc() 從文件指針中讀取字符
file()把整個文件讀入一個數組中數組中的每個單元都是文件中相應的一行
readfile() 讀入一個文件並寫入到輸出緩沖
copy(filenamefilename) 復制文件
unlink(filename) 刪除文件
rename(filenamefilename) 重命名文件或目錄
$text = iconv(gbkutf高志偉);///將gbk編碼轉換為utf


From:http://tw.wingwit.com/Article/program/PHP/201311/21220.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.