2023年php重要知識點總結PHP網絡開發必背_第1頁
2023年php重要知識點總結PHP網絡開發必背_第2頁
2023年php重要知識點總結PHP網絡開發必背_第3頁
2023年php重要知識點總結PHP網絡開發必背_第4頁
2023年php重要知識點總結PHP網絡開發必背_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PHP網站開發必用知識點總結,函數一覽,開發必背魔術方法__construct()當實例化一個對象的時候,這個對象的這個方法一方面被調用。__destruct()當刪除一個對象或對象操作終止的時候,調用該方法。__get()當試圖讀取一個并不存在的屬性的時候被調用。__set()當試圖向一個并不存在的屬性寫入值的時候被調用。__call()當試圖調用一個對象并不存在的方法時,調用該方法。__toString()當打印一個對象的時候被調用__clone()當對象被克隆時,被調用 __isset()?__unset() __autoload($classname) __sleep()?__wakeup()系統常量__FILE__當前文獻名__LINE__當前行數__FUNCTION__當前函數名__CLASS__當前類名__METHOD__當前對象的方法名PHP_OS當前系統PHP_VERSIONphp版本DIRECTORY_SEPARATOR根據系統決定目錄的分隔符/\PATH_SEPARATOR根據系統決定環境變量的目錄列表分隔符;:E_ERROR1E_WARNING2E_PARSE4E_NOTICE8M_PI3.141592$_SERVER$_ENV執行環境提交至腳本的變量$_GET$_POST$_REQUEST$_FILES$_COOKIE$_SESSION$_GLOBALS輸出?echo//Outputoneormorestrings print//Outputastring print_r()//打印關于變量的易于理解的信息。?var_dump()//打印變量的相關信息 var_export()//輸出或返回一個變量的字符串表達 printf("%.1f",$num)//Outputaformattedstringsprintf()//Returnaformattedstring編碼轉換 stringmb_convert_encoding(string$str,string$to_encoding[,mixed$from_encoding])?iconv();時間 date_default_timezone_set("PRC");?date("Y-m-dH:i:s");?time(); date("Y-m-dH:i:s",time()+3600)?ini_set('date.timezone','PRC'); msecsecmicrotime()以秒返回時間戳explode('',microtime())錯誤解決?@1/0 error_reporting(E_ALL)顯示所有錯誤error_reporting(0) trigger_error("Cannotdividebyzero",E_USER_ERROR);?try?{? thrownewException("執行失敗"); } catch(Exception$ex)?{ ?echo$ex; }字符串解決?stringtrim("eee")trim('ffffe','e')//ltrimrtrim arrayexplode(".","fff.ff.f")按指定字符切割?stringimplode(".",$array)別名:join把數組值數據按指定字符連接起來?arraystr_split("eeeeeeee",4)按長度切割字符串arraysplit("-","fff-ff-f")按指定字符切割?intstrlen('ffffffff')取字符長度 stringsubstr(string$string,int$start[,int$length])substr($a,-2,2)截取字符 intsubstr_count($text,'is')字符串出現的次數 stringstrstr($text,'h')第一次出現h后的字符串//別名:strchr?intstrpos($text,'h')第一次出現h的位置?strrpos();最后一次出現h的位置 str_replace('a','ttt',$t)把$t里的'a'替換為'ttt'strtr($t,'is','ppp')把$t中'is'替換成'ppp'strtr("hiall,Isaidhello",array("hello"=>"hi"))把'hello'轉換成'hi'?stringmd5_file('1.txt',false)文獻數據md5加密?intstrcmp(stringstr1,stringstr2)字符串比較 intstrcasecmp(stringstr1,stringstr2)忽略大小寫stringstr_pad($i,10,"-=",STR_PAD_LEFT)在原字符左邊補'-=',直到新字符串長度為10STR_PAD_RIGHTSTR_PAD_BOTH?stringstr_repeat('1',5)反復5個1voidparse_str('id=11');echo$id;將字串符解析為變量?arraypreg_grep("/^(\d+)?\.\d+$/",array(11.2,11,11.2))匹配數據 arraypreg_split("/[\s,]+/","hypertextlanguage,programming");按指定的字符切割?arraypathinfo(stringpath[,intoptions])返回文獻途徑的信息 stringbasename(stringpath[,stringsuffix])返回途徑中的文獻名部分 stringdirname(stringpath)$_SERVER[PHP_SELF]返回途徑中的目錄部分 stringnl2br("fooisn't\nbar")"fooisn't<br>bar"把換行轉成<br> stringchr(intascii)*?mixedstr_word_count(stringstring[,intformat[,stringcharlist]]) stringstr_shuffle('abc')打亂字符串順序?stringstrrev($str)*翻轉一個字符串?stringstrtolower($str)*將字符串$str的字符所有轉換為小寫的 stringstrtoupper($str)*將字符串$str的字符所有轉換為大寫的 stringucfirst($str)*將字符串$str的第一個單詞的首字母變為大寫。?stringucwords($str)*將字符串$str的每個單詞的首字母變為大寫。 stringaddslashes("I'm")I\'m使用反斜線引用字符串這些字符是單引號(')、雙引號(")、反斜線(\)與NUL(NULL字符)?stringstripcslashes("I\'m")I'm將用addslashes()函數解決后的字符串返回原樣?strip_tags("<p>tt</p>",'<p>')去除html、xml、php標記,第二個參數用來保存標記 stringurlencode(stringstr)?stringurldecode(stringstr)?stringhtmlspecialchars("<ahref='test'>Test</a>",ENT_QUOTES)轉換特殊字符為HTML字符編碼 <ahref=9;test&#039;&gt;Test</a>; ENT_COMPAT–對雙引號進行編碼,不對單引號進行編碼??ENT_QUOTES–對單引號和雙引號進行編碼 ?ENT_NOQUOTES–不對單引號或雙引號進行編碼?stringhtmlentities('<p>ff</p>',ENT_QUOTES)轉換特殊字符為HTML字符編碼,中文會轉成亂碼數組解決?intcount(mixedvar[,intmode])別名:sizeof()取數組長度stringimplode(".",$array)別名:join把數組值數據按指定字符連接起來 arrayexplode(".","fff.ff.f")按指定字符切割?arrayrange(0,6,2)返回數組array(0,2,4,6)第一個參數為起使數,第二個參數為結束數,第三個參數為數據增長步長 intarray_push($a,"3",1)把'3'、'1'壓入$a,將一個或多個單元壓入數組的末尾(入棧),第二個參數開始就是壓入的數據 voidunset(mixedvar[,mixedvar[,...]]) arrayarray_pad($a,5,'s')用's'將數組填補到指定長度?boolshuffle(array$array)將數組打亂 mixedarray_rand(arrayinput[,intnum_req])從數組中隨機取出一個或多個單元的索引或鍵名 arrayarray_count_values(arrayinput)記錄數組中所有的值出現的次數 arrayarray_combine(arraykeys,arrayvalues)創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值?boolarray_key_exists(mixedkey,arraysearch)檢查給定的鍵名或索引是否存在于數組中?mixedarray_search(mixedneedle,arrayhaystack[,boolstrict])在數組中搜索給定的值,假如成功則返回相應的鍵名?boolis_array(mixedvar) boolin_array(mixedneedle,arrayhaystack[,boolstrict])檢查數組中是否存在某個值?numberarray_sum(arrayarray)計算數組中所有值的和 arrayarray_unique(arrayarray)移除數組中反復的值?mixedreset(array&array)將數組的內部指針指向第一個單元 mixedcurrent(array&array)?mixednext(array&array)?mixedprev(array&array) mixedend(array&array) mixedkey(array&array)?arrayarray_keys(arrayinput[,mixedsearch_value[,boolstrict]])返回數組中所有的鍵名 arrayarray_values(arrayinput)返回數組中所有的值?boolprint_r(mixedexpression[,boolreturn])?voidvar_dump(mixedexpression[,mixedexpression[,...]])?intarray_unshift(array&array,mixedvar[,mixed...])在數組開頭插入一個或多個單元 mixedarray_shift(array&array)將數組開頭的單元移出數組?mixedarray_pop(array&array)將數組最后一個單元彈出(出棧) arrayarray_splice(array$input,intoffset[,intlength[,arrayreplacement]])把數組中的一部分去掉并用其它值取代 arrayarray_merge(arrayarray1[,arrayarray2[,array...]])合并一個或多個數組?arrayarray_flip(arraytrans)互換數組中的鍵和值 intextract(arrayvar_array[,intextract_type[,stringprefix]])從數組中將變量導入到當前的符號表 arraycompact(mixedvarname[,mixed...])建立一個數組,涉及變量名和它們的值?boolsort(array&array[,intsort_flags])從最低到最高重新安排?boolnatsort($a) 用“自然排序”算法對數組排序boolrsort(array&array[,intsort_flags])對數組進行逆向排序(最高到最低) boolasort(array&array[,intsort_flags])對數組進行排序并保持索引關系 boolarsort(array&array[,intsort_flags])對數組進行逆向排序并保持索引關系?boolksort(array&array[,intsort_flags])對數組按照鍵名排序 boolkrsort(array&array[,intsort_flags])對數組按照鍵名逆向排序?arrayarray_filter(arrayinput[,callbackcallback])用回調函數過濾數組中的單元 boolarray_walk(array&array,callbackfuncname[,mixeduserdata])對數組中的每個成員應用用戶函數?arrayarray_map(callbackcallback,arrayarr1[,array...])將回調函數作用到給定數組的單元上 arrayarray_fill(intstart_index,intnum,mixedvalue)用給定的值填充數組array_fill(5,3,'a')-->array(5=>'a',6=>'a',7=>'a') arrayarray_chunk(arrayinput,intsize[,boolpreserve_keys])將一個數組分割成多個其他isset()變量是否存在booleanempty()檢查變量是否存在,并判斷值是否為非空或非0voidunset()銷毀變量header('Content-Type:text/html;charset=utf-8');?method_exists($obj,$method) 判斷對象的方法是否可用?file_exists($file)?判斷文獻是否存在?function_exists();?class_exists($class_name);gettype();獲取數據類型set_magic_quotes_runtime()0foroff,1foron當碰到反斜桿、單引號,將會自動加上一個反斜桿,保護系統和數據庫的安全?ini_set();安全?functionstrReplace($str)?{ $strResult=$str;?if(!get_magic_quotes_gpc())//判斷設立是否啟動 {??$strResult=addslashes($strResult);//轉換sql語句特殊字符 } return$strResult;?} functionquotes($content) { ?//假如magic_quotes_gpc=Off,那么就開始解決??if(!get_magic_quotes_gpc())??{? ?//判斷$content是否為數組? if(is_array($content))?? {? ?//假如$content是數組,那么就解決它的每一個單無 ???foreach($contentas$key=>$value) { ? $content[$key]=addslashes($value); }???}? ?else? {? //假如$content不是數組,那么就僅解決一次? ?addslashes($content);?? } ?} ?//返回$content return$content; }smarty?模板引擎將不分析? <!--{literal}-->??<script>???functiont(){ ??} </script>??<!--{/literal}-->?讀取配置文獻??<!--{config_loadfile="config.s"}--> <!--{#site_url#}--> ?<!--{$smarty.config.site_url}-->?引入文獻 <!--{includefile="index2.html"}-->? <!--{include_phpfile="/path/to/load_nav.php"}-->$trusted_dir指定目錄下的文獻?捕獲模板輸出的數據??<!--{capturename='eee'}-->? fffffffff <!--{/capture}--> <!--{$smarty.capture.eee}-->?循環? <{sectionname=looploop=$News_IN}> ??<{$News_IN[loop].NewsID}> ?<{/section}> <!--{sectionname=tloop=$data}--> ??<tr>??? <td><!--{$data[t].username}--></td>???</tr> <!--{/section}--> ?<{foreachfrom=$newsArrayitem=newsIDkey=k}> ?新聞編號:<{$newsID.newsID}><br> ?新聞內容:<{$newsID.newsTitle}><br><hr>? <{/foreach}>?判斷??<!--{iftrue}--> 1111 <!--{else}-->? 22222222??<!--{/if}-->?時間 ?{$smarty.now|date_format:"%Y-%m-%d%H:%M:%S"} %Y年%m月%d日亂碼 ? <!--{$smarty.now|date_format:"%Y年%m月%d日%H時%M分%S秒"}--> ?修改插件:plugins/modifier.date_format.php?? $format=mb_convert_encoding($format,'gbk','utf-8'); returnmb_convert_encoding(strftime($format,$timestamp),'utf-8','gbk'); 局部不緩存??html:? ?<!--{$smarty.now|date_format:"%Y-%m-%d%H:%M:%S"}-->???<!--{cachelessa="aaa"b="bbbb"}-->? ?<!--{$smarty.now|date_format:"%Y-%m-%d%H:%M:%S"}-->? ?<!--{/cacheless}--> ?php: ??$smarty->register_block('cacheless','smarty_block_dynamic',false);//true:緩存,false:不緩存 functionsmarty_block_dynamic($param,$content,&$smarty)???{??? return$content;???}??php:? functioninsert_kk()//方法名前必須有"insert" {? returndate('Y-m-dH:i:s');???} ?html: ? <!--{insertname="kk"}--> 自定義方法 ?注冊方法 php ? ?$smarty->register_function('test1','test'); ? ?functiontest($p) { return'ffffffffff'; } ?html: <!--{test1name="ff"}-->??-----------------? 方法自定義? ?插件文獻方式定義方法 ? function.test.php文獻存在plugins目錄下,方法名:smarty_function_test($params,&$smarty) ??functionsmarty_function_test($params,&$smarty)??? ?{? ? return'fff';?? } ??html調用: ? ?<!--{testname='aa'p='ff'}-->? ----------------------? 插入方法?? 插件文獻:insert.kk.php文獻存于plugins目錄下? ? functionsmarty_insert_kk() ? ?{?? ?returndate('Y-m-dH:i:s'); ?? }? ?php: ???functioninsert_kk()//方法名前必須有"insert"? ?{ ?? returndate('Y-m-dH:i:s'); } ??html:? ? <!--{insertname="kk"}--> ?---------------- ?管道符自定義方法 ? 插件文獻方式定義方法? ?modifier.test.php文獻存在于plugins目錄下,方法名:functionsmarty_modifier_test($str,$str2)?? functionsmarty_modifier_test($str,$str2)?? ? { ? ???return$str.$str2;?? } ? html調用:?? <!--{'ff'|test:'tt'}--> ??php: ? functioneee($a)? ?{?????return'ffffffffffffff';? ? }???html:????<!--{''|@eee}--> if語句 eq相等, ne、neq不相等,? gt大于 ?gte、ge大于等于,? lte、le小于等于,? not非,mod求模。? is[not]divby是否能被某數整除,??is[not]even是否為偶數,? $ais[not]evenby$b即($a/$b)%2==0 is[not]odd是否為奇 ?$aisnotoddby$b即($a/$b)%2!=0XMLsax xml: ? <--?xmlversion="1.0"encoding="utf-8"?--> ?<books> ? <book> ? <author>JackHerrington</author> ?<title>PHPHacks</title>?? <publisher>O'Reilly</publisher>???</book>?? <book> ? <author>JackHerrington</author> ???<title>PodcastingHacks</title> ? <publisher>O'Reilly</publisher>?? </book>?? <book> ? ?<author>作者</author> ??<title>標題</title>??? <publisher>出版者</publisher> ??</book>?? </books>??php: $g_books=array(); ?$g_elem=null; functionstartElement($parser,$name,$attrs) {?? global$g_books,$g_elem;? ?if($name=='BOOK')$g_books[]=array();? $g_elem=$name; }??functionendElement($parser,$name) { ?global$g_elem; $g_elem=null;? }??functiontextData($parser,$text) { ? global$g_books,$g_elem;???if($g_elem=='AUTHOR'|| ? $g_elem=='PUBLISHER'|| ???$g_elem=='TITLE')? ?{? $g_books[count($g_books)-1][$g_elem]=$text;? }? }? $parser=xml_parser_create();? xml_set_element_handler($parser,"startElement","endElement"); ?xml_set_character_data_handler($parser,"textData");? $f=fopen('1.xml','r');? while($data=fread($f,4096))??{? ?xml_parse($parser,$data); ?} ?xml_parser_free($parser); foreach($g_booksas$book) { ?echo$book['TITLE']."-".$book['AUTHOR']."-"; echo$book['PUBLISHER']."<br>"; ?}DomDocument()??xml: ?<--?xmlversion="1.0"encoding="utf-8"?--> ??<books>???<book> ?? <author>JackHerrington</author>?? <title>PHPHacks</title>?? ?<publisher>O'Reilly</publisher>? ?</book>???<book>? ??<author>JackHerrington</author> ??<title>PodcastingHacks</title>? <publisher>O'Reilly</publisher>???</book>? <book>??? <author>作者</author> ???<title>標題</title> <publisher>出版者</publisher>???</book> </books>??php讀取: ?$doc=newDOMDocument();???$doc->load("1.xml"); $books=$doc->getElementsByTagName("book");? ?foreach($booksas$book) ?{ ???$authors=$book->getElementsByTagName("author"); $author=$authors->item(0)->nodeValue;? $publishers=$book->getElementsByTagName("publisher");?? ?$publisher=$publishers->item(0)->nodeValue;? $titles=$book->getElementsByTagName("title");? ??$title=$titles->item(0)->nodeValue; ? echo"$title-$author-$publisher<br>"; }? php生成: ? $books=array();?? $books[]=array( ?? 'title'=>'PHPHacks', 'author'=>'JackHerrington',? ??'publisher'=>"O'Reilly"??? );? $books[]=array( ???'title'=>'PodcastingHacks',????'author'=>'JackHerrington', ???'publisher'=>"O'Reilly"??? );???$doc=newDOMDocument(); $doc->formatOutput=true;?? $r=$doc->createElement("books");???$doc->appendChild($r); foreach($booksas$book) { ? $b=$doc->createElement("book"); ?$author=$doc->createElement("author"); ??$author->appendChild($doc->createTextNode($book['author'])); ?? $b->appendChild($author); ??$title=$doc->createElement("title"); ?$title->appendChild($doc->createTextNode($book['title'])); ???$b->appendChild($title); ???$publisher=$doc->createElement("publisher");? ??$publisher->appendChild($doc->createTextNode($book['publisher']));?? ?$b->appendChild($publisher); ?? $r->appendChild($b);? ?} ??echo$doc->saveXML(); ?echo$doc->save('222.xml');SimpleXML ?xml:? <books> ?<book>???<author>JackHerrington</author>???<title>PHPHacks</title>? ?<publisher>O'Reilly</publisher>??</book>??</books> ?php:??$xml=newSimpleXMLElement('1.xml',NULL,TRUE);??echo$xml->book[0]->author."___".$xml->book[0]->title."___".$xml->book[0]->publisher;正則?ereg系列的正則表達式不需要定屆符,preg系列的才需要,并且定界符可以自己選擇,只有前后一對就行,比如我們一般使用/符號,但是假如里面有/需要匹配那么就需要使用\/來表達,當/需要出現多次的時候,這樣就不方便,我們就可以使用其他的定界符,比如| 正則特殊字符 .\+*?[^]$(){}=!<>|:由原子(普通字符,如英文字符)、元字符(有特殊功用的字符)模式修正字符一個正則表達式中,至少包含一個原子所有符號解釋\將下一個字符標記為一個特殊字符、或一個原義字符、或一個向后引用、或一個八進制轉義符。例如,'n'匹配字符"n"。'\n'匹配一個換行符。序列'\\'匹配"\"而"\("則匹配"("。^匹配輸入字符串的開始位置。假如設立了RegExp對象的Multiline屬性,^也匹配'\n'或'\r'之后的位置。$匹配輸入字符串的結束位置。假如設立了RegExp對象的Multiline屬性,$也匹配'\n'或'\r'之前的位置。*匹配前面的子表達式零次或多次。例如,zo*能匹配"z"以及"zoo"。*等價于{0,}。+匹配前面的子表達式一次或多次。例如,'zo+'能匹配"zo"以及"zoo",但不能匹配"z"。+等價于{1,}。?匹配前面的子表達式零次或一次。例如,"do(es)?"可以匹配"do"或"does"中的"do"。?等價于{0,1}。{n}n是一個非負整數。匹配擬定的n次。例如,'o{2}'不能匹配"Bob"中的'o',但是能匹配"food"中的兩個o。{n,}n是一個非負整數。至少匹配n次。例如,'o{2,}'不能匹配"Bob"中的'o',但能匹配"foooood"中的所有o。'o{1,}'等價于'o+'。'o{0,}'則等價于'o*'。{n,m}m和n均為非負整數,其中n<=m。最少匹配n次且最多匹配m次。例如,"o{1,3}"將匹配"fooooood"中的前三個o。'o{0,1}'等價于'o?'。請注旨在逗號和兩個數之間不能有空格。?當該字符緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})后面時,匹配模式是非貪婪的。非貪婪模式盡也許少的匹配所搜索的字符串,而默認的貪婪模式則盡也許多的匹配所搜索的字符串。例如,對于字符串"oooo",'o+?'將匹配單個"o",而'o+'將匹配所有'o'。.匹配除"\n"之外的任何單個字符。要匹配涉及'\n'在內的任何字符,請使用象'[.\n]'的模式。(pattern)匹配pattern并獲取這一匹配。所獲取的匹配可以從產生的Matches集合得到,在VBScript中使用SubMatches集合,在JScript中則使用$0…$9屬性。要匹配圓括號字符,請使用'\('或'\)'。(?:pattern)匹配pattern但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以后使用。這在使用"或"字符(|)來組合一個模式的各個部分是很有用。例如,'industr(?:y|ies)就是一個比'industry|industries'更簡略的表達式。(?=pattern)正向預查,在任何匹配pattern的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如,'Windows(?=95|98|NT|2023)'能匹配"Windows2023"中的"Windows",但不能匹配"Windows3.1"中的"Windows"。預查不消耗字符,也就是說,在一個匹配發生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預查的字符之后開始。(?!pattern)負向預查,在任何不匹配pattern的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用。例如'Windows(?!95|98|NT|2023)'能匹配"Windows3.1"中的"Windows",但不能匹配"Windows2023"中的"Windows"。預查不消耗字符,也就是說,在一個匹配發生后,在最后一次匹配之后立即開始下一次匹配的搜索,而不是從包含預查的字符之后開始x|y匹配x或y。例如,'z|food'能匹配"z"或"food"。'(z|f)ood'則匹配"zood"或"food"。[xyz]字符集合。匹配所包含的任意一個字符。例如,'[abc]'可以匹配"plain"中的'a'。[^xyz]負值字符集合。匹配未包含的任意字符。例如,'[^abc]'可以匹配"plain"中的'p'。[a-z]字符范圍。匹配指定范圍內的任意字符。例如,'[a-z]'可以匹配'a'到'z'范圍內的任意小寫字母字符。[^a-z]負值字符范圍。匹配任何不在指定范圍內的任意字符。例如,'[^a-z]'可以匹配任何不在'a'到'z'范圍內的任意字符。\b匹配一個單詞邊界,也就是指單詞和空格間的位置。例如,'er\b'可以匹配"never"中的'er',但不能匹配"verb"中的'er'。\B匹配非單詞邊界。'er\B'能匹配"verb"中的'er',但不能匹配"never"中的'er'。\cx匹配由x指明的控制字符。例如,\cM匹配一個Control-M或回車符。x的值必須為A-Z或a-z之一。否則,將c視為一個原義的'c'字符。\d匹配一個數字字符。等價于[0-9]。\D匹配一個非數字字符。等價于[^0-9]。\f匹配一個換頁符。等價于\x0c和\cL。\n匹配一個換行符。等價于\x0a和\cJ。\r匹配一個回車符。等價于\x0d和\cM。\s匹配任何空白字符,涉及空格、制表符、換頁符等等。等價于[\f\n\r\t\v]。\S匹配任何非空白字符。等價于[^\f\n\r\t\v]。\t匹配一個制表符。等價于\x09和\cI。\v匹配一個垂直制表符。等價于\x0b和\cK。\w匹配涉及下劃線的任何單詞字符。等價于'[A-Za-z0-9_]'。\W匹配任何非單詞字符。等價于'[^A-Za-z0-9_]'。\xn匹配n,其中n為十六進制轉義值。十六進制轉義值必須為擬定的兩個數字長。例如,'\x41'匹配"A"。'\x041'則等價于'\x04'&"1"。正則表達式中可以使用ASCII編碼。.\num匹配num,其中num是一個正整數。對所獲取的匹配的引用。例如,'(.)\1'匹配兩個連續的相同字符。\n標記一個八進制轉義值或一個向后引用。假如\n之前至少n個獲取的子表達式,則n為向后引用。否則,假如n為八進制數字(0-7),則n為一個八進制轉義值。\nm標記一個八進制轉義值或一個向后引用。假如\nm之前至少有nm個獲得子表達式,則nm為向后引用。假如\nm之前至少有n個獲取,則n為一個后跟文字m的向后引用。假如前面的條件都不滿足,若n和m均為八進制數字(0-7),則\nm將匹配八進制轉義值nm。\nml假如n為八進制數字(0-3),且m和l均為八進制數字(0-7),則匹配八進制轉義值nml。\un匹配n,其中n是一個用四個十六進制數字表達的Unicode字符。例如,\u00A9匹配版權符號(?)。例子/\b([a-z]+)\b/i單詞數量/(\w+):\/\/([^/:]+)(:\d*)?([^#]*)/將一個URL解析為協議、域、端口及相對途徑/^(?:Chapter|Section)[1-9][0-9]{0,1}$/定位章節的位置/[-a-z]/A至z共26個字母再加一個-號。/ter\b/可匹配chapter,而不能terminal/\Bapt/可匹配chapter,而不能aptitude/Windows(?=95|98|NT)/可匹配Windows95或Windows98或WindowsNT,當找到一個匹配后,從Windows后面開始進行下一次的檢索匹配。^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$Email合法格式檢查^[0-9]+$純數據檢查^[0-9a-z]{1}[0-9a-z\-]{0,19}$用戶名檢查,字母和數字開始,只能含字母、數字、橫杠模式修正符i忽略大小寫s假如設定了此修正符,模式中的圓點元字符(.)匹配所有的字符,涉及換行符e只用在preg_replace(),在替換字符串中對逆向引用作正常的替換,將其作為PHP代碼求值,并用其結果來替換所搜索的字符串。如:$p='/\[colorFont\](.+?)\[\/colorFont\]/ie';$t='"<imgsrc='color.php?t=".urlencode("\1")."\'/>"';ecohpreg_replace($p,$t,$string);這里必須加上e修正,才干將匹配到的內容用urlencode解決U貪婪模式,最大限度匹配如:/a[\w]+?e/U匹配abceadeddd中的abceade而不是abce,假如不加U修正,則匹配abceA強制從字符串開頭匹配,即自動在模式開頭加上^m當設定了此修正符,“行起始”^和“行結束”$除了匹配整個字符串開頭和結束外,還分別匹配其中的換行符的之后和之前。假如目的字符串中沒有“\n”字符或者模式中沒有^或$,則設定此修正符沒有任何效果。D模式中的美元元字符僅匹配目的字符串的結尾。沒有此選項時,假如最后一個字符是換行符的話,美元符號也會匹配此字符之前。假如設定了m修正符則忽略此選項 例子??匹配中文?? preg_match_all('/[^\x00-\x80]+/','中華s人s民',$a)? 假如你的文獻是gb2312的,用/[\xa0-\xff]{2}/ ? 假如是utf8的,用/[\xe0-\xef][\x80-\xbf]{2}/? 匹配郵箱地址 ??preg_match('/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/','') ?替換空白字符 ??$s=preg_replace('/[\s\v]+/','',' ssssddss');??替換 ??$string="April15,2023"; ? $pattern="/(\w+)(\d+),(\d+)/i";???$replacement="\${1}1,\${3}1-$2"; ?echopreg_replace($pattern,$replacement,$string);? 匹配帳號是否合法(字母開頭,允許5-6字節,允許字母數字下劃線) ?preg_match('/^[a-zA-Z][a-zA-Z0-9_]{4,5}$/','a011a') ?匹配數字 ??/^-\d*$/匹配負整數 ? /^-?\d*$/匹配整數? 匹配浮點數 ??preg_match("/^-?(\d*.\d*|0.\d*|0?.0+|0)$/","11") 匹配電話號碼 preg_match("/^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7}){1,1}(\-[0-9]{1,4}){0,1}$/","-11") 匹配手機號碼 ??preg_match("/^1(3|5)\d{9}$/","")文獻解決?文獻屬性??file_exists('1.php')文獻或目錄是否存在? filesize()取得文獻大小 ?is_readable()判斷給定文獻名是否可讀 is_writable()判斷給定文獻名是否可寫??is_executable()判斷給定文獻名是否可執行??filectime()獲取文獻的發明時間 ?filemtime()獲取文獻的修改時間 ?fileatime()獲取文獻的訪問時間 ?stat()獲取文獻大部分屬性值?解析目錄 ?basename()返回途徑中的文獻名部分??dirname()返回目錄??pathinfo()返回目錄名、基本名和擴展名的關聯數組 遍歷目錄? opendir()打開指定目錄??readdir()關閉指定目錄 ?closedir()關閉指定目錄? rewinddir()倒回目錄句柄 ? $dir_handle=opendir('.'); while($file=readdir($dir_handle))? {? ??echofilesize($file).'___'.$file.'<br>'; ? }?? closedir($dir_handle);?建立和刪除目錄 mkdir()創建目錄??rmdir()刪除空目錄 文獻操作 ?fopen()??fclose()??fwrite()寫入文獻 ?fputs()fwrite的別名??file_put_contents($文獻名,$內容)把內容存成文獻 ?file_get_contents()從文獻讀出內容?文獻讀取??fread() ?stream_get_contents() fgets()從文獻指針中讀取一行? feof()測試文獻指針是否到了文獻結束的位置? fgetc()從文獻指針中讀取字符 ?file()??readfile()讀入一個文獻并寫入到輸出緩沖 ftell()返回文獻指針的當前位置 fseek()移動文獻指針到指定的位置??rewind()移動文獻指針到文獻的開頭 flock()文獻鎖定??copy()復制文獻 ?unlink()刪除文獻 ?ftruncate()將文獻截斷到指定的長度 ?rename()重命名文獻或目錄 文獻控制 ?chgrp??chmod(string$filename,int$mode)? chown 保存讀取文獻? 把內容存成文獻 $cache_file=fopen('f:\1.txt','w+'); ?fwrite($cache_file,$t); -------把內容存成文獻 ?$s="內容"; ?file_put_contents('f:/2.txt',$s); -----把文獻內容讀成字符串 $s=file_get_contents('f:/2.txt');??echo$s; ?------把文獻內容按行讀成字符串 $handle=@fopen("f:/2.txt","r");? if($handle) ?{?? while(!feof($handle)) ??{? ? $buffer=fgets($handle,4096); ? echo$buffer.'<br>'; ??} ?fclose($handle);? }??---session/cookie?setcookie("MyCookie[foo]",'Testing1',time()+3600) session_start()?ini_set('session.cookie_lifetime',0);session相應cookie存活時間?ini_set('session.save_path','dir');?ini_set('session.save_path','2;session');session分兩級存放?ini_set('session.name','SNS');?客戶端禁用Cookie session.use_trans_sid=1啟動url傳遞sessionIdphp.ini?session銷毀mysql $link=mysql_connect('localhost','root','root')ordie(mysql_errno()); mysql_select_db('test')ordie(mysql_errno()); mysql_query('SETNAMESgbk'); $sql="SELECT*FROMtestLIMIT0,20"; $result=mysql_query($sql)ordie(mysql_errno());?while($msg=mysql_fetch_array($result)){ ?print_r($msg); } mysql_free_result($result);?mysql_close($link);mysqli 查詢??------------過程??$db_host="localhost";//連接的服務器地址? $db_user="root";//連接數據庫的用戶名??$db_psw="root";//連接數據庫的密碼? $db_name="test";//連接的數據庫名稱 ?$mysqli=mysqli_connect($db_host,$db_user,$db_psw,$db_name);??mysqli_query($mysqli,'SETNAMESutf8'); ?$query="select*fromusers"; $result=mysqli_query($mysqli,$query); while($row=mysqli_fetch_array($result))//循環輸出結果集中的記錄??{ ?echo($row['id'])."<br>";?? echo($row['username'])."<br>"; ?echo($row['password'])."<br>"; ??echo"<hr>";??}??mysqli_free_result($result); mysqli_close($mysqli);? ------------對象? $db_host="localhost";//連接的服務器地址??$db_user="root";//連接數據庫的用戶名 ?$db_psw="root";//連接數據庫的密碼 $db_name="test";//連接的數據庫名稱 $mysqli=newmysqli($db_host,$db_user,$db_psw,$db_name); $mysqli->query('SETNAMESutf8'); $query="select*fromusers"; ?$result=$mysqli->query($query);? if($result)??{???if($result->num_rows>0)//判斷結果集中行的數目是否大于0?? {?? while($row=$result->fetch_array())//循環輸出結果集中的記錄 ?? { ? ? echo($row[0])."<br>";? echo($row[1])."<br>"; ? ?echo($row[2])."<br>";???? echo"<hr>";? } ??}??} ?else? { ? echo"查詢失敗";??}? $result->free(); $mysqli->close();?增、刪、改??$mysqli=newmysqli("localhost","root","root","sunyang");//實例化mysqli $query="deletefromemployeewhereemp_id=2";??$result=$mysqli->query($query); ?if($result){ echo"刪除操作執行成功";? }else{ ?echo"刪除操作執行失敗";? } ?$mysqli->close();?綁定結果 ?$mysqli=newmysqli("localhost","root","root","test");//實例化mysqli? $query="select*fromusers"; $result=$mysqli->prepare($query);//進行預準備語句查詢? $result->execute();//執行預準備語句? $result->bind_result($id,$username,$password);//綁定結果??while($result->fetch()){? ?echo$id.'_';???echo$username.'_'; ? echo$password;? ?echo"<br>";??} $result->close();//關閉預準備語句? $mysqli->close();//關閉連接 綁定參數 ?$mysqli=newmysqli("localhost","root","root","test");//實例化mysqli $query="inseousers(id,username,password)values('',?,?)"; ?$result=$mysqli->prepare($query); $result->bind_param("ss",$username,$password);//綁定參數I:integerD:doubleS:stringB:blob ?$username='sy0807';??$password='employee7'; $result->execute();//執行預準備語句 $result->close();??$mysqli->close(); 綁定參數、綁定結果 ?$mysqli=newmysqli("localhost","root","root","test");//實例化mysqli? $query="select*fromuserswhereid<?";? $result=$mysqli->prepare($query);??$result->bind_param("i",$id);//綁定參數? $id=10;??$result->execute();??$result->bind_result($id,$username,$password);//綁定結果??while($result->fetch()){? ?echo$id."_"; ? echo$username."_"; ? echo$password;? echo"<br>";??}??$result->close(); ?$mysqli->close();?多條查詢語句 $mysqli=newmysqli("localhost","root","root","test");//實例化mysqli??$query="selectidfromusers;"; ?$query.="selectidfromtest"; if($mysqli->multi_query($query)){//執行多個查詢 ??do{??? if($result=$mysqli->store_result()){ ? while($row=$result->fetch_row()){ ? echo$row[0];?? ? echo"<br>";???? }? ?? $result->close(); ? }????if($mysqli->more_results()){? ?? echo("------------<br>");//連個查詢之間的分割線?? } ??}while($mysqli->next_result());??} ?$mysqli->close();//關閉連接pdo 查詢??$db=newPDO('mysql:host=localhost;dbname=test','root','root'); $sql="SELECT*FROMusers";??$result=$db->query($sql);? foreach($resultas$row)??{ ? var_dump($row);??} $db=null; 增、刪、改、事務啟動??try? { ??$db=newPDO('mysql:host=localhost;dbname=test','root','root'); ??$db->beginTransaction(); ??$a=$db->exec("insertintousers(id,username,password)values('','Joe','Bloggs')"); ?if($a==false) ??{ ?? thrownewException("sql1執行失敗");???}???$b=$db->exec("insertintousers(id,username,password,kkk)values('','Joe','Bloggs')");???if($b==false)? { ?? thrownewException("sql2執行失敗"); ??} $db->commit(); ? $db=null; ?}? catch(Exception$ex)? {? echo$ex;???$db->rollback(); ?}緩存 Memcache .下載memcached,;2.解壓,比如放在D:\memcached-1.2.1;3.DOS下輸入‘D:\memcached-1.2.1\memcached.exe-dinstall’,進行安裝(注意‘’不要輸入);4.再次輸入‘D:\memcached-1.2.1\memcached.exe-dstart’啟動memcached。注意:memcached以后會隨機啟動。這樣memcached就已經安裝完畢了。

??$memcache=newMemcache; ?$memcache->addServer('172.19.5.199',11211); ?$memcache->addServer('172.19.5.13',11211);? //$memcache->connect('localhost',11211)ordie("Couldnotconnect"); ?//$version=$memcache->getVersion(); //echo"Server'sversion:".$version;??$memcache->set('key3',array(1,2,3));? var_dump($memcache->get('key3')); ob ob_start() ?$content=ob_get_contents(); ob_clean(); ?$cache_file=fopen('f:\1.html','w+');? fwrite($cache_file,$content);??頁面靜態化-------------------------? ob_start(); $static_file='1.html';//靜態頁面? $php_file=basename(__FILE__);//當前動態頁面? if(!file_exists($static_file)||? ((filemtime($static_file)+10)<time())||//緩存固定期間? ?filemtime($php_file)>filemtime($static_file))//源文獻已修改??{? ?echo'靜態頁面示例'; ??echo'erer';? ?$c=ob_get_contents();???ob_clean();? ?file_put_contents($static_file,$c);? }? $s=file_get_contents($static_file);? echo$s; --------------- ob_implicit_flush($p)$p:0:關閉1:啟動(每次輸出后都自動刷新,而不再需要去調用flush()) ob_list_handlers列出所有使用的輸出句

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論