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

提交评论