《2023年php重要知识点总结PHP网络开发必背.docx》由会员分享,可在线阅读,更多相关《2023年php重要知识点总结PHP网络开发必背.docx(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、PHP网站开发必用知识点总结,函数一览,开发必背魔术方法_consiruct()当实例化一个对象的时候,这个对象的这个方法一方面被调用。_destr u ct()当删除-一个对象或对象操作终止的时候,调用该方法。_get()当试图读取一个并不存在的属性的时候被调用。_s e t()当试图向一个并不存在的属性写入值的时候被调用。_call()当试图调用一个对象并不存在的方法时,调用该方法。-toString ()当打印一个对象的时候被调用_cl o nc()当对象被克隆时,被调用_ i s s et ()。unset()。au t o 1 o ad ($cla s sname)si e ep()
2、wakeup()系统常量_FILE_当前文献名_L I NE_当前行数FU N CTION 当前函数名_CLASS_当前类名METHOD当前对象的方法名PHP.OS当前系统PHP.VER S ION php 版本D IRECTORY_SE P ARATOR根据系统决定目录的分隔符 八PATH_SEPARATOR根据系统决定环境变量的目录列表分隔符;:/假如magic_ q uote s _gpc= Off,那么就开始解决o if (! g e t_m a g i c_q u otcs_gpc()。判断Scontent是否为数组g if (is_ a rr a y($co n te n t)8。
3、/ /假如$c o me nt是数组,那么就解决它的每一个单无。4 o reach (Sco n t ent a s $key=$va 1 ue )00$c o n t en t $ keyl = a d d s 1 ashes($v a 1 u e):0I)e Ise00。假如$ c。n t en t不是数组,那么就仅解决一次。出 d dslashes($ c o n t e n t);)00 。/ /返回$c o nt e n to r e t u r n Scon t ent;)sm a r t y。模板引擎将不分析,of u net iont ()00 Io。读取配置文献 ! con
4、figjoad file=con f ig. s。引入文献。g $ t r u s ted_ d ir指定目录下的文献捕获模板输出的数据。f ffffffffs 。循环secti o n name=loop loop =SNews_ I N 。 。 。新闻编号:新闻内容:V $n e wsID.new s T i tl e xbrxh r 判断m1111o2 2222 2 22o 。时间oo $ smart y . now | date.fo r ma t :%Y-%m-%d %H: %M: %S。丫年01月 d日乱码!- -$smar t y. n o w| d ate_ f or mat:
5、 %Y 年1。月 d 日 %H 时1 分0 秒”。修改插件:plugins/modif i er. date_format.p h pSformat = mb_ con vert_ e ncoding ($fbrma t ,* g bk, u tf- 8 );r el u m mb_ con vert_ e neo d ing(st r f time ($ forma t , $(imest a mp),utf- 8 , gbk);局部不缓存由 t ml:。ggg8 P h p:Ssma r ty-reg i s t er_blo c k(cach e less, smar t y_ b lo
6、ck_dyna m ic , f alse) ;/true:缓存,fal s e:不缓存function s mar t y_block_d y n ainic( Spa ram, $c o nte n t, & $ sm a rty)00。ret urn $ co n tent;66 p hp:。 functi on ins e rtkk () 方法名前必须有i n s erl00 r e i u rn d a te( Y-m- d H: i : s);ao),htm 1 :o,自定义方法。 注册方法P hpg $ s mar t y-r e gister_functio n ( t e s
7、 tl, te s t );ggfunct i on t e st($p)return* f fffffffff;。 fli 一一 一 a* 一一 一 一 方法自定义。,插件文献方式定义方法“g function. I e st. p h p 文献存在 plugin s 目录下,方法名:smart y _fu n c t ion_ie s($ pa r a ms, &$ s marty)o 。 of u nc t i on sm a rt y _fu n c tio n _test (Sparams, &$sm arty)000&re t urn fff;0 h tml调用:。y!- t es
8、 t name=a a p = * ff -。 插入方法。插件文献:ins e r t. k k . p hp文献存于plu gins目录下ggf unction smar t y_i n se r t_k k ()og ooo&oretu r n date(Y-m-d H: i: s);OO6 叩hp:o f u n cti o n insert_k k ( ) / / 方法名前必须有i n s e rt 0000000 grelurn d ale(Y-m-d H:i:s);000 Joh t ml:。y!-insert namc= k k -_ . _ _ _ _。管道符自定义方法插件文献
9、方式定义方法。 oomodifier.test.ph p 文献存在于 plu g ins 目录下,方法名:functi o n smar t y_m o di f ier_tes t ( $ str, $ str 2 )functio n sma r t y_modif i e r_test($ s tr, $str2)00s。r eturn Sstr. $ str2: gohtm 1 调用:。P hp:。f unction eee( $ a) 。ar e turn fffff f ffffffff7 ;00ghtm 1 :。if语句eq相等,one、ne q不相等,gl大于Mgte ge大于
10、等于,Ite、le小于等于,0 noi非,mod求模。 i s no t 1 d i v by是否能被某数整除,。 is not even是否为偶数,$a is not e v e n by $b 即($2/$6)%2 = 0is not odd是否为奇g$a is not odd by$t|J($a/ $b) % 2 != 0XMLsax, xml:。g o J ack Her r ing t on-PH P H a c k s 。 0 R e i 11 y g 。a Jack Herrin g t o ngPodcas t ing Ha c ks。0 R ei 1 lys 。/ book
11、作者 。 标题v/tiU e 。出版者v/pu b lis h e r ,ph p :$ g _books = ar r a y();o $ g _el e m = n u 11;。 functions tartE 1 em e nt( $ p a rs e r, $n a m e , $attrs )00 aglob a 1 $g_books, $g_ele m;g if ( Snam e = BOOK) $gbo o k s = a rr a y();。$g_el e m = $ n am e ;00 。f u nc t i on end EI e ment ( $ p a rs e r
12、, $n a me )。 g 1 obal $g_ e lem;。$ g_elem = n u II; sfunct i on textDa t a ($ p a r s er, $ text)(g。global $ g_boo k s, Sg_ e lem;。 i f( $ g_elem = AUTHOR I Isg $g_elem = PUBLISHER, | | a。$g_elem = = *TITL E)$g_b o o k s cou n t ( $ g _ b oo k s ) - 1 $g_elem ext;。$ p arser = x nil_pa r ser_ere a t
13、e ();。 xml_s e t_e 1 eme n t_handler( Sparser, st a r tElem ent , endElement);g xml_ set _char act e r _d a t a _han d ler( $ p arser, t e xtDa t a );$ f = f op e n( z 1.xml, r );。 wh i le ($da t a = fre a d( $ f , 4096 ) x ml_pa r se( $p a r se r , $ d at a ); a xm 1 _parser_f r ee( $pars er);forea
14、 c h( S g _bo o k s a s $ b ook )o echo $ b o o k TITLE. - .$b o ok z AUTHORe c ho $b o o kPUBLISHER.vbr ;DomD o c ument() axm 1 :00 8o* Jack Herringto n 。 PHP H a cks。 0 Reilly。Jack He r rington。Pod c as t ing Hacks0 Reil 1 yo g 作者标题o。出版者v / publ i sheroo3php读取:$doc = new DO MDocumen t ();。$doc-loa
15、d( l.xml);。$boo k s = $ d oc-getE 1 eme n t s ByTagNam e ( b ook);。for e ac h ( $bo o ks a s $book )$ a u thors = $ b ook-g e t El e ments B yTagName( au t hoE_ERROR 1E.WARNING 2E_PAR S E 4E_NOTICE 8M_P I 3.14 1 592s_server$_ENV执行环境提交至脚本的变量$_GET$_POST$ R EQUEST$_FILES$_COOKIES_SES S ION$, GLOBALS输出e
16、cho / / Outpu t one or more s t r ings。p ri nt / / Output a stri n gpri n r () /打印关于变量的易于理解的信息。flvar_ d ump() 打印变量的相关信息var_e x port ()/输出或返回一个变量的字符串表达p r intf(%. 1 $num) /Ou t pu t a formatted st r i n gs p r intf ()/ / Re t u r n a form a tted string编码转换s t r ing mb_ c onvert_encodin g ( strin g $s
17、tr ,string $lo_encoding , mixe d $ f rom_enco d i ng)$ a u thor = $ a u t h ors-it e m(0) -node V a 1 ue;$ publ i s hers = $book- g elEIemen t sByTagN a me( p ubl i sh er );3$publisher = $ p ub 1 ishers- i tem(0)- n od e Va 1 u e;。$ti(les =$boo k-getE 1 eme n tsByTagName ( lid e );g。$ tit 1 e = $ t
18、it 1 es-i t em(0)-n o deVa 1 ue;。e cho $ t i t 1 e $ a u t hor - $ publ i s h e r ;php生成:。$ books = array();a。$ bo o ks = a r r a y(Z t it 1 cf = PHP Hacks, auth o r = J ack H e rr i ngt o n,。p u bl i sher = OReil 1 y 88 ) s 。$ b o oks = arr a y (oatitl e = Pod c a s ting Ha c k s 。 gau t hor = J a
19、ck Herrington,0。 pub 1 i s h er = O R e illy”);,$ d oc = n e w D 0 M Do c ume n 1();oo $ doc- form a t O utpu t = t ru e ;Sr = $ d oc-create E 1 e ment( * b ooks);g$d o c-appen d C h i 1 d ( $ r );。 f o reac h ( $ b ooks as $book )g$b = $ doc-cr e ale E lem e n t( book);g。 $ au t hor = $ d oc-crea t
20、 e E lement( auth or);$aulhorappendCh i I d ($doc-cre a teTextNod e ( $boo k au(h orl );3 o $b ap p endChi 1 d( $ a u t h or);$titlc =$d occreateE 1 ement( t i tie );。 Stitle- appe n d Child ($doc-crea t eTextNode( $ bookf t i te);appen d C hild( $t i tie );$pub 1 isher = $doc-crealeElemen t (publis
21、her);。$ p ub 1 isher-app e ndChild ($d o c-c r e ate T extNo d e( $boo kIpubli s her);o a pp e ndC h i 1 d( $ p ubli s h e r );。$r- a p p endCh i ld( $ b );g echo Sdocsave XML ();。echo $d o c - s ave(2 2 2.xmlz );Simp leXM Lx ml: 。g J ack Herrin g t o n。P H P H ac k s。OReilly。aV / books3 p hp:o$xml
22、= new SimpleXM L Eleme n t(L x ml, NULL, TRU E);gecho $ xm 1 book0-aut h or. *$ x ml-book0 t i tie. book 0-pub 1 ish e r;正则ereg系列的正则表达式不需要定届符,P re g系列的才需要,并且定界符可以自己 选择,只有前后一对就行,比如我们一般使用/符号,但是假如里面有/需要匹配那么就需要使 用V来表达,当/需要出现多次的时候,这样就不方便,我们就可以使用其他的定界符,比如I正则特殊字符。. +*?人$()=!|:由原子(普通字符,如英文字符)、元字符(有特殊功用的字符)模
23、式修正字符一个正则表达式中,至少包含一个原子所有符号解释将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或 一个八进制转义符。例如,2 匹配字符”n。匹配一个换行符。序列丫匹配 而 ”(“则匹配”(二匹配输入字符串的开始位置。假如设立了 RegExp对象的Mui t i 1 ine属性,人也匹配或T之后的位置。$匹配输入字符串的结束位置。假如设立了 RegExp对象的Mu Elinc属性,$也匹 配、n或,r之前的位置。文匹配前面的子表达式零次或多次。例如,zo大 能匹配 z以及zoo% *等价于 0, O+匹配前面的子表达式一次或多次。例如,zo4能匹配“zo以及“z。”,
24、 但不能匹配“ z”(,+等价于1配。?匹配前面的子表达式零次或一次。例如Jdo(es)?可以匹配do”或“does”中 的” do。?等价于0,1。n n是一个非负整数。匹配拟定的n次。例如/o2不能匹配Bob”中的o,但是能匹配food中的两个o。n, n是一个非负整数。至少匹配n次。例如为2,不能匹配B。b ”中的 o,但能匹配fo o oood 中的所有o。1,等价于0+。o0J则等价于o*。n,m m和n均为非负整数,其中n=m。最少匹配n 次且最多匹配m 次。 例如,。 1,3“将匹配fooooood”中的前三个。0等价于P?。请注旨在逗号 和两个数之间不能有空格。?当该字符紧跟在
25、任何一个其他限制符(*, +, ?,n, n, ,n, m)后面时,匹配模式是非贪婪的。非贪婪模式尽也许少的匹配所搜索的字符串,而默认的贪婪模 式则尽也许多的匹配所搜索的字符串。例如,对于字符串。,。+?将匹配单个o, 而。+将匹配所有。.匹配除“n之外的任何单个字符。要匹配涉及V,在内的任何字符,请使用象 l.n的模式。(pattern) 匹配pattern并获取这一匹配。所获取的匹配可以从产生的Match e s 集合得到,在VBScr i p t中使用SubMat c hes集合,在J S c ri p t中则使用$0$9属 性。要匹配圆括号字符,请使用(或)。(?:patt e r n
26、)匹配pal t ern但不获取匹配结果,也就是说这是一个非获取匹配,不 进行存储供以后使用。这在使用“或“字符(I)来组合一个模式的各个部分是很有用。例 如J i ndustr(? : y I i cs)就是一个比in d ust r y| i ndustrics)更简略的表达式。(?=pat t ern)正向预查,在任何匹配pattern的字符串开始处匹配查找字符串。这 是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,Windows (?=95| 9 8|NT|2023),能匹配Windows 2023” 中的“W i nd。w s ,但不能匹配Windows 3.1 中的W
27、 i ndows%预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之 后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。(?!pattern)负向预查,在任何不匹配pat t e rn的字符串开始处匹配查找字符串。 这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如Window s (?!95 I 98|N T|2023)能匹配W i nd o ws 3.1 中的 Windows”,但不能匹配Windows 2023中的Windows:预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹 配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始x I
28、y 匹配 x 或 y。例如,1 z |food能匹配 z 或f o o d 。 (z|f)ood 则匹配“zood 或food”。xyz字符集合。匹配所包含的任意一个字符。例如,a be可以匹配pl ain中的a*oA xyz负值字符集合。匹配未包含的任意字符。例如,Pa be可以匹 配plain中的,p。a-z字符范围。匹配指定范围内的任意字符。例如a-z可以匹配工到 2范围内的任意小写字母字符。卜a-z负值字符范围。匹配任何不在指定范围内的任意字符。例如,/a- z 可 以匹配任何不在到 范围内的任意字符。b 匹配一个单词边界,也就是指单词和空格间的位置。例如,由可以匹配” never中的
29、er,但不能匹配v erb 中的er。B 匹配非单词边界 erB能匹配verb中的er,但不能匹配n e v er中 的er。 c x 匹配由x指明的控制字符。例如,cM匹配一个 Control-M或回车 符。x的值必须为A-Z或az之一。否则,将c视为一个原义的 V字符。d匹配一个数字字符。等价于0-9。D 匹配一个非数字字符。等价于0-9。f匹配一个换页符。等价于x 0c和 cL。n匹配一个换行符。等价于x 0a和cJ or匹配一个回车符。等价于x0 d和cM。 s匹配任何空白字符,涉及空格、制表符、换页符等等。等价于fnr tW OS匹配任何非空白字符。等价于fnrtvot匹配一个制表符
30、。等价于x()9和 c I。v 匹配一个垂直制表符。等价于x0b和cK。w匹配涉及下划线的任何单词字符。等价于1A-Za-zO-9,。W 匹配任何非单词字符。等价于-A-Za-z 0 -9_ oxn匹配n,其中n为十六进制转义值。十六进制转义值必须为拟定的两个数字 长。例如,x4匹配A。H04 1 则等价于x04 & 1。正则表达式中可以使用 ASCII 编码。.nurn 匹配num,其中num是一个正整数。对所获取的匹配的引用。例如, (.)匹配两个连续的相同字符。n标记一个八进制转义值或一个向后引用。假如n之前至少n个获取的子表 达式,则n为向后引用。否则,假如n为八进制数字(0-7),则
31、n为一个八进制转 义值。nm标记一个八进制转义值或一个向后引用。假如nm之前至少有nm 个获得子表达式,则nm为向后引用。假如nm 之前至少有n个获取,则n为一个后 跟文字 m 的向后引用。假如前面的条件都不满足,若n和m均为八进制数字(0-7),则nm将匹配八进制转义值 nm。nml假如n为八进制数字(0-3),且m和1均为八进制数字(0-7),则匹 配八进制转义值 n m1 ou n匹配n,其中n是一个用四个十六进制数字表达的Unicode字符。例如,u0 0A9匹配版权符号 (?)。例子Ab(a-z +)b/i 单词数量/(w+):W(M+)(:d*)?(A#*) /将一个URL解析为协
32、议、域、端口及相对途径/ 八(?:Ch a p terlSecti o n) 1-9 0- 9 0J $/ 定位章节的位置/-a- z / A至z共2 6个字母再加一个-号。/ ter b/ 可匹配 ch a pt e r,而不能 t e r m i nal/ B a p t / 可匹配 chapter,而不能 aptitude/Windows (?=95 |98 |NT )/ 可匹配 W i nd o w s 95 或 Wi n d ow s 9 8 或 Wind o wsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。A_. 0 - 9 a -z-+( 0 -9a-z
33、I0-9a-z- +.)+a-z 2,3 $ Email 合法格式检查0-9 +$纯数据检查A0- 9 a-z l0-9a-z- 0,1 9 $用户名检查,字母和数字开始,只能含字 母、数字、横杠模式修正符i忽略大小写s假如设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,涉及换行符e只用在preg.re p I a ce(),在替换字符串中对逆向引用作正常的替换,将其作为P H P代码求值,并用其结果来替换所搜索的字符串。如:$p= / c o lo r Font (.+?) Vc o 1 o r F onl /i e$t= * ,n;e c oh prcg_rcpla c e ($p
34、,$t, $ string);这里必须加上e修正,才干将匹配到的内容用u r 1 encod e解决U贪婪模式,最大限度匹配如:/a w+? e /U匹配abc e adeddd中的abc e ade而不是abce,假如不力口 U修正,贝!J匹 配 abc eA强制从字符串开头匹配,即自动在模式开头加上人m当设定了此修正符,“行起始” a和“行结束” $除了匹配整个字符串开头和结 束外,还分别匹配其中的换行符的之后和之前。假如目的字符串中没有“n”字符或者模式 中没有人或$,则设定此修正符没有任何效果。D模式中的美元元字符仅匹配目的字符串的结尾。没有此选项时,假如最后一个字 符是换行符的话,美
35、元符号也会匹配此字符之前。假如设定了 m修正符则忽略此选项 。例子 。匹配中文。p r eg_match_all(7Ax00-x 8 0+/,中华 s 人 s 民,$ a)。 假如你的文献是gb2 312的,用/xaO-xf f 2/。 假如是 utf8 的,用/ xeO-xe f x8 0 -xbf2 / 匹配邮箱地址op r e g _ma t c h (Aw+ (-+. w+)火 w+( . w+) *.w+(-.w+)* /替换空白字符。$ s = prcg_rcp 1 a c e( /s v +/, , ssssdd s s );。替换$ str i ng = April 1 5,
36、2023;Spat t ern = / ( w+) ( d +) ,(d+)/ i ;$rep 1 acem e nt = $ 1 1,$3) 1 - $ 2;a ftecho preg_repl a c e(Sp a tte r n, $repl a c e m e n t, $string);匹配帐号是否合法(字母开头,允许5-6字节,允许字母数字下划线)。pr e g_match( / A a-z A-Zl(a-z A-Z 0 9 _ 4,5 $ / , / a 011 a ),匹配数字。八Ad* $/匹配负整数。/八-? d*$/匹酉己整数匹配浮点数。 pr e g_ma t ch(7
37、 A -? (d*. d*|0. d* I 0? .0+|0) $/, 1 1)匹配电话号码。pr e g_match(7A (0 0-92, 3-)? (2-9 0-9 6, 7 ) 1 ,1(-0-9 1,4 )0,l) $/;-! 1 )匹配手机号码叩 r e g_m a tch( / A 1 (3|5) d 9$/ “,文献解决。文献属性f i le_e x ist s (l.ph p )文献或目录是否存在。 f il e s i z e()取得文献大小-is_readable()判断给定文献名是否可读i s _wri t able()判断给定文献名是否可写s _e x ecut a
38、bl e ()判断给定文献名是否可执行。 fi 1 ectimeO 获取文献的发明时间fi 1 emtimeO获取文献的修改时间。 filcat i mc()获取文献的访问时间sial ()获取文献大部分属性值。解析kl录8 b as e name()返回途径中的文献名部分8d i rn a me ()返回目录pathinfo。返回目录名、基本名和扩展名的关联数组遍历目录gop end ir()打开指定目录。readd ir()关闭指定目录 c I o s e dir ()关闭指定目录rewin d dir()倒回目录句柄。$ d i r_han d le= o p endir(z。wh i
39、le($file= r eaddir(Sdir_ha n d 1 e) gg e cho fi 1 e s ize($fil e ). ,$f i 1 e . ;00 )closedir(Sdir_h and 1 e);。建立和删除目录。mkdir。创建目录。rmdir () 删除空目录。文献操作8f o pen()。 fcl o s e ()fwr i te()写入文献8f p uts () f wr i t e 的别名Mile_put_conten t s岱文献名,$内容)把内容存成文献gf i lc_ge t _contents()从文献读出内容文献读取iconv ();时间d a t e_defau 1 t _timezo n e_set(P R C );datc(v Y-m-dH: