2023年php重要知識(shí)點(diǎn)總結(jié)PHP網(wǎng)絡(luò)開發(fā)必背_第1頁
2023年php重要知識(shí)點(diǎn)總結(jié)PHP網(wǎng)絡(luò)開發(fā)必背_第2頁
2023年php重要知識(shí)點(diǎn)總結(jié)PHP網(wǎng)絡(luò)開發(fā)必背_第3頁
2023年php重要知識(shí)點(diǎn)總結(jié)PHP網(wǎng)絡(luò)開發(fā)必背_第4頁
2023年php重要知識(shí)點(diǎn)總結(jié)PHP網(wǎng)絡(luò)開發(fā)必背_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

??$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);??頁面靜態(tài)化-------------------------? ob_start(); $stat(yī)ic_file='1.html';//靜態(tài)頁面? $php_file=basename(__FILE__);//當(dāng)前動(dòng)態(tài)頁面? if(!file_exists($static_file)||? ((filemtime($static_file)+10)<time())||//緩存固定期間? ?filemtime($php_file)>filemtime($stat(yī)ic_file))//源文獻(xiàn)已修改??{? ?echo'靜態(tài)頁面示例'; ??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:關(guān)閉1:啟動(dòng)(每次輸出后都自動(dòng)刷新,而不再需要去調(diào)用flush()) ob_list_handlers列出所有使用的輸出句

溫馨提示

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

評(píng)論

0/150

提交評(píng)論