《php重要知识点总结PHP网络开发.docx》由会员分享,可在线阅读,更多相关《php重要知识点总结PHP网络开发.docx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、php重要知识点总结PHP网络开发PHP 网站开发必用学问点总结,函数一览,开发必背 魔术方法 _construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。 _destruct() 当删除一个对象或对象操作终止的时候,调用该方法。 _get() 当试图读取一个并不存在的属性的时候被调用。 _set() 当试图向一个并不存在的属性写入值的时候被调用。 _call() 当试图调用一个对象并不存在的方法时,调用该方法。 _toString() 当打印一个对象的时候被调用 _clone() 当对象被克隆时,被调用_isset()_unset()_autoload($classnam
2、e)_sleep()_wakeup()系统常量 _FILE_ 当前文件名 _LINE_ 当前行数 _FUNCTION_ 当前函数名 _CLASS_ 当前类名 _METHOD_ 当前对象的方法名 PHP_OS 当前系统 PHP_VERSION php 版本 DIRECTORY_SEPARATOR 依据系统确定书目的分隔符 / PATH_SEPARATOR 依据系统确定环境变量的书目列表分隔符 ; : E_ERROR 1 E_WARNING 2 E_PARSE 4 E_NOTICE 8 M_PI3.141592 $_SERVER $_ENV 执行环境提交至脚本的变量 $_GET $_POST $_
3、REQUEST $_FILES $_COOKIE $_SESSION $_GLOBALS输出 echo /Output one or more stringsprint/Output a stringprint_r()/打印关于变量的易于理解的信息。var_dump()/打印变量的相关信息var_export()/输出或返回一个变量的字符串表示printf(%.1f,$num)/Output a formatted string sprintf()/Return a formatted string编码转换string mb_convert_encoding ( string $str , s
4、tring $to_encoding , mixed $from_encoding )iconv();时间date_default_timezone_set(PRC);date(Y-m-d H:i:s);time();date(Y-m-d H:i:s,time()+3600)ini_set(date.timezone, PRC);msec sec microtime() 以秒返回时间戳 explode( , microtime()错误处理1/0error_reporting(E_ALL) 显示全部错误 error_reporting(0)trigger_error(Cannot divide
5、by zero, E_USER_ERROR);try throw new Exception(执行失败);catch (Exception $ex) echo $ex;字符串处理string trim(eee ) trim (ffffe,e)/ltrim rtrimarray explode(., fff.ff.f) 按指定字符切割string implode(., $array)别名:join 把数组值数据按指定字符连接起来array str_split(eeeeeeee,4) 按长度切割字符串 array split(-,fff-ff-f) 按指定字符切割int strlen(ffffff
6、ff)取字符长度string substr ( string $string , int $start , int $length ) substr($a,-2, 2) 截取字符int substr_count($text, is) 字符串出现的次数 string strstr($text, h) 第一次出现 h 后的字符串 /别名:strchrint strpos($text, h) 第一次出现 h 的位置strrpos();最终一次出现 h 的位置str_replace(a, ttt, $t) 把$t 里的a替换为ttt strtr($t,is,ppp) 把$t 中is替换成ppp str
7、tr(hi all, I said hello, array(hello =gt; hi) 把hello转换成histring md5_file(1.txt,false) 文件数据 md5 加密int strcmp(string str1, string str2) 字符串比较int strcasecmp(string str1, string str2) 忽视大小写 string str_pad($i, 10, -=, STR_PAD_LEFT) 在原字符左边补-=,直到新字符串长度为10 STR_PAD_RIGHT STR_PAD_BOTHstring str_repeat(1, 5) 重
8、复 5 个 1 void parse_str(id=11); echo $id; 将字串符解析为变量array preg_grep(/(d+)?.d+$/, array(11.2,11,11.2) 匹配数据array preg_split (/s,+/, hypertext language,programming); 按指定的字符切割array pathinfo(string path , int options) 返回文件路径的信息string basename ( string path , string suffix ) 返回路径中的文件名部分string dirname ( stri
9、ng path )$_SERVERPHP_SELF返回路径中的书目部分string nl2br(foo isntn bar) foo isntlt;brgt; bar 把换行转成lt;brgt;string chr ( int ascii )*mixed str_word_count ( string string , int format , string charlist )string str_shuffle (abc) 打乱字符串依次string strrev($str) * 翻转一个字符串string strtolower($str) * 将字符串 $str 的字符全部转换为小写的s
10、tring strtoupper($str) * 将字符串 $str 的字符全部转换为大写的string ucfirst ($str) * 将字符串 $str 的第一个单词的首字母变为大写。string ucwords($str)*将字符串 $str 的每个单词的首字母变为大写。 string addslashes(Im) Im 运用反斜线引用字符串 这些字符是单引号()、双引号()、反斜线()与 NUL(NULL 字符)string stripcslashes(Im) Im 将用 addslashes()函数处理后的字符串返回原样strip_tags(lt;pgt;ttlt;/pgt;, l
11、t;pgt;) 去除 html、xml、php 标记,其次个参数用来保留标记string urlencode(string str)string urldecode(string str)string htmlspecialchars(lt;a href=testgt;Testlt;/agt;, ENT_QUOTES) 转换特别字符为 HTML字符编码 lt;a href=amp;#039;testamp;#039;gt;Testlt;/agt; ENT_COMPAT –对双引号进行编码,不对单引号进行编码 ENT_QUOTES –对单引号和双引号进行编码 ENT_NO
12、QUOTES –不对单引号或双引号进行编码string htmlentities(lt;pgt;fflt;/pgt;, ENT_QUOTES) 转换特别字符为 HTML 字符编码,中文会转成乱码 数组处理int count( mixed var , int mode ) 别名:sizeof() 取数组长度 string implode(., $array)别名:join 把数组值数据按指定字符连接起来array explode(., fff.ff.f) 按指定字符切割array range(0, 6, 2) 返回数组 array(0,2,4,6) 第一个参数为起使数,其次个参数为结
13、束数,第三个参数为数据增加步长int array_push($a, 3, 1) 把3、1压入$a,将一个或多个单元压入数组的末尾(入栈),其次个参数起先就是压入的数据void unset ( mixed var , mixed var , . )array array_pad ($a, 5, s)用s将数组填补到指定长度bool shuffle ( array $array )将数组打乱mixed array_rand ( array input , int num_req )从数组中随机取出一个或多个单元的索引或键名array array_count_values ( array input
14、 )统计数组中全部的值出现的次数array array_combine ( array keys, array values ) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值bool array_key_exists ( mixed key, array search )检查给定的键名或索引是否存在于数组中mixed array_search ( mixed needle, array haystack , bool strict )在数组中搜寻给定的值,假如胜利则返回相应的键名bool is_array ( mixed var )bool in_array ( mixed
15、needle, array haystack , bool strict )检查数组中是否存在某个值number array_sum ( array array )计算数组中全部值的和array array_unique ( array array )移除数组中重复的值mixed reset ( array amp;array )将数组的内部指针指向第一个单元mixed current ( array amp;array )mixed next ( array amp;array )mixed prev ( array amp;array )mixed end ( array amp;arra
16、y )mixed key ( array amp;array )array array_keys ( array input , mixed search_value , bool strict ) 返回数组中全部的键名array array_values ( array input ) 返回数组中全部的值bool print_r ( mixed expression , bool return )void var_dump ( mixed expression , mixed expression , . )int array_unshift ( array amp;array, mixed
17、 var , mixed . )在数组开头插入一个或多个单元mixed array_shift ( array amp;array )将数组开头的单元移出数组mixed array_pop ( array amp;array )将数组最终一个单元弹出(出栈)array array_splice ( array $input, int offset , int length , array replacement ) 把数组中的一部分去掉并用其它值取代array array_merge ( array array1 , array array2 , array . )合并一个或多个数组array
18、 array_flip ( array trans )交换数组中的键和值int extract( array var_array , int extract_type , string prefix ) 从数组中将变量导入到当前的符号表array compact ( mixed varname , mixed . ) 建立一个数组,包括变量名和它们的值bool sort ( array amp;array , int sort_flags )从最低到最高重新支配bool natsort($a) 用自然排序算法对数组排序 bool rsort ( array amp;array , int so
19、rt_flags )对数组进行逆向排序(最高到最低)bool asort ( array amp;array , int sort_flags )对数组进行排序并保持索引关系bool arsort ( array amp;array , int sort_flags ) 对数组进行逆向排序并保持索引关系bool ksort ( array amp;array , int sort_flags )对数组根据键名排序bool krsort ( array amp;array , int sort_flags )对数组根据键名逆向排序array array_filter ( array input
20、, callback callback ) 用回调函数过滤数组中的单元bool array_walk ( array amp;array, callback funcname , mixed userdata ) 对数组中的每个成员应用用户函数array array_map ( callback callback, array arr1 , array . )将回调函数作用到给定数组的单元上array array_fill ( int start_index, int num, mixed value ) 用给定的值填充数组 array_fill(5, 3, a)-gt;array(5=gt;
21、a,6=gt;a,7=gt;a)array array_chunk ( array input, int size , bool preserve_keys )将一个数组分割成多个其他 isset() 变量是否存在 boolean empty() 检查变量是否存在,并推断值是否为非空或非 0 void unset() 销毁变量 header(Content-Type: text/html; charset=utf-8);method_exists($obj, $method) 推断对象的方法是否可用file_exists($file) 推断文件是否存在function_exists();cla
22、ss_exists($class_name); gettype();获得数据类型 set_magic_quotes_runtime() 0 for off, 1 for on 当遇到反斜杆、单引号,将会自动加上一个反斜杆,爱护系统和数据库的平安ini_set();平安function strReplace($str)$strResult = $str;if(!get_magic_quotes_gpc()/推断设置是否开启 $strResult = addslashes($strResult);/转换 sql 语句特别字符return $strResult; function quotes($c
23、ontent) /假如 magic_quotes_gpc=Off,那么就起先处理 if (!get_magic_quotes_gpc() /推断$content 是否为数组if (is_array($content) /假如$content 是数组,那么就处理它的每一个单无 foreach ($content as $key=gt;$value) $content$key = addslashes($value); else /假如$content 不是数组,那么就仅处理一次 addslashes($content); /返回$content return $content; smarty模板
24、引擎将不分析 lt;!-literal-gt; lt;scriptgt;function t() lt;/scriptgt; lt;!-/literal-gt;读取配置文件 lt;!-config_load file=config.s-gt; lt;!-#site_url#-gt; lt;!-$smarty.config.site_url-gt;引入文件 lt;!-include file=index2.html-gt; lt;!-include_php file=/path/to/load_nav.php-gt; $trusted_dir 指定书目下的文件捕获模板输出的数据 lt;!-cap
25、ture name=eee-gt;fffffffff lt;!-/capture-gt;lt;!-$smarty.capture.eee-gt;循环 lt;section name=loop loop=$News_INgt;lt;$News_INloop.NewsIDgt; lt;/sectiongt;lt;!-section name=t loop=$data-gt;lt;trgt; lt;tdgt;lt;!-$datat.username-gt;lt;/tdgt;lt;/trgt; lt;!-/section-gt;lt;foreach from=$newsArray item=newsI
26、D key=kgt;新闻编号:lt;$newsID.newsIDgt;lt;brgt;新闻内容:lt;$newsID.newsTitlegt;lt;brgt;lt;hrgt; lt;/foreachgt;推断 lt;!-if true-gt;1111 lt;!-else-gt;22222222 lt;!-/if-gt;时间 $smarty.now|date_format:%Y-%m-%d %H:%M:%S %Y 年%m 月%d 日 乱码lt;!-$smarty.now|date_format:%Y 年%m 月%d 日 %H 时%M 分%S 秒-gt;修改插件:plugins/modifier.
27、date_format.php$format = mb_convert_encoding($format,gbk,utf-8);return mb_convert_encoding(strftime($format, $timestamp),utf-8,gbk); 局部不缓存 html:lt;!-$smarty.now|date_format:%Y-%m-%d %H:%M:%S-gt;lt;!-cachelessa=aaa b=bbbb-gt; lt;!-$smarty.now|date_format:%Y-%m-%d %H:%M:%S-gt;lt;!-/cacheless-gt; php:$
28、smarty-gt;register_block(cacheless, smarty_block_dynamic, false);/true:缓存,false:不缓存function smarty_block_dynamic($param, $content, amp;$smarty) return $content;php:function insert_kk()/方法名前必需有insert return date(Y-m-d H:i:s); html:lt;!-insert name=kk-gt;自定义方法 注册方法php $smarty-gt;register_function(test
29、1, test); function test($p) return ffffffffff; html: lt;!-test1 name=ff-gt; - 方法自定义插件文件方式定义方法 function.test.php 文 件 存 在 plugins 目 录 下 , 方 法 名 :smarty_function_test($params, amp;$smarty)function smarty_function_test($params, amp;$smarty) return fff;html 调用: lt;!-test name=aa p=ff-gt; - 插入方法插件文件:inser
30、t.kk.php 文件存于 plugins 书目下 function smarty_insert_kk() return date(Y-m-d H:i:s); php: function insert_kk()/方法名前必需有insert return date(Y-m-d H:i:s); html: lt;!-insert name=kk-gt; - 管道符自定义方法 插件文件方式定义方法 modifier.test.php 文 件 存 在 于 plugins 目 录 下 , 方 法 名 : function smarty_modifier_test($str, $str2)function
31、 smarty_modifier_test($str, $str2) return $str.$str2;html 调用: lt;!-ff|test:tt-gt; php: function eee($a) return ffffffffffffff; html: lt;!-|eee-gt;if 语句 eq 相等, ne、neq 不相等, gt 大于 gte、ge 大于等于, lte、le 小于等于, not 非, mod 求模。 is not div by 是否能被某数整除, is not even 是否为偶数, $a is not even by $b 即($a / $b) % 2 = 0
32、 is not odd 是否为奇 $a is not odd by $b 即($a / $b) % 2 != 0XML sax xml:lt;-?xml version=1.0 encoding=utf-8?-gt;lt;booksgt;lt;bookgt; lt;authorgt;Jack Herringtonlt;/authorgt; lt;titlegt;PHP Hackslt;/titlegt; lt;publishergt;OReillylt;/publishergt;lt;/bookgt;lt;bookgt; lt;authorgt;Jack Herringtonlt;/autho
33、rgt; lt;titlegt;Podcasting Hackslt;/titlegt; lt;publishergt;OReillylt;/publishergt; lt;/bookgt;lt;bookgt; lt;authorgt;作者lt;/authorgt; lt;titlegt;标题lt;/titlegt; lt;publishergt;出版者lt;/publishergt;lt;/bookgt;lt;/booksgt; php: $g_books = array(); $g_elem = null;function startElement( $parser, $name, $at
34、trs ) global $g_books, $g_elem;if ( $name = BOOK ) $g_books = array();$g_elem = $name; function endElement( $parser, $name ) global $g_elem;$g_elem = null; function textData( $parser, $text ) global $g_books, $g_elem;if ( $g_elem = AUTHOR | $g_elem = PUBLISHER | $g_elem = TITLE ) $g_books count( $g_
35、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_book
36、s as $book ) echo $bookTITLE. - .$bookAUTHOR. - ;echo $bookPUBLISHER.lt;brgt; DomDocument() xml:lt;-?xml version=1.0 encoding=utf-8?-gt;lt;booksgt;lt;bookgt; lt;authorgt;Jack Herringtonlt;/authorgt; lt;titlegt;PHP Hackslt;/titlegt; lt;publishergt;OReillylt;/publishergt;lt;/bookgt;lt;bookgt; lt;autho
37、rgt;Jack Herringtonlt;/authorgt; lt;titlegt;Podcasting Hackslt;/titlegt; lt;publishergt;OReillylt;/publishergt;lt;/bookgt;lt;bookgt; lt;authorgt;作者lt;/authorgt; lt;titlegt;标题lt;/titlegt; lt;publishergt;出版者lt;/publishergt;lt;/bookgt;lt;/booksgt; php 读取:$doc = new DOMDocument();$doc-gt;load( 1.xml); $
38、books = $doc-gt;getElementsByTagName( book );foreach( $books as $book ) $authors = $book-gt;getElementsByTagName( author ); $author = $authors-gt;item(0)-gt;nodeValue;$publishers = $book-gt;getElementsByTagName( publisher ); $publisher = $publishers-gt;item(0)-gt;nodeValue;$titles = $book-gt;getElem
39、entsByTagName( title );$title = $titles-gt;item(0)-gt;nodeValue;echo $title - $author - $publisherlt;brgt; php 生成:$books = array();$books = array( title =gt; PHP Hacks, author =gt; Jack Herrington, publisher =gt; OReilly );$books = array( title =gt; Podcasting Hacks, author =gt; Jack Herrington, pub
40、lisher =gt; OReilly ); $doc = new DOMDocument();$doc-gt;formatOutput = true; $r = $doc-gt;createElement( books );$doc-gt;appendChild( $r ); foreach( $books as $book ) $b = $doc-gt;createElement( book ); $author = $doc-gt;createElement( author ); $author-gt;appendChild($doc-gt;createTextNode( $bookau
41、thor ); $b-gt;appendChild( $author );$title = $doc-gt;createElement( title ); $title-gt;appendChild($doc-gt;createTextNode( $booktitle ); $b-gt;appendChild( $title );$publisher = $doc-gt;createElement( publisher ); $publisher-gt;appendChild($doc-gt;createTextNode( $bookpublisher ); $b-gt;appendChild
42、( $publisher ); $r-gt;appendChild( $b ); echo $doc-gt;saveXML();echo $doc-gt;save(222.xml); SimpleXML xml:lt;booksgt; lt;bookgt;lt;authorgt;Jack Herringtonlt;/authorgt;lt;titlegt;PHP Hackslt;/titlegt;lt;publishergt;OReillylt;/publishergt; lt;/bookgt; lt;/booksgt; php: $xml = new SimpleXMLElement(1.xml, NULL, TRUE); echo $xml-gt;book0-gt;author._.$xml-gt;book0-gt;title._.$xml-gt;book0-gt;publisher;正则ereg系列的正则表达式不须要定届符,preg系列的才须要,并且定界符可以自己选择,只有前后一对就行,比如我们一般运用/符号