php重要知识点总结PHP网络开发必背_第1页
php重要知识点总结PHP网络开发必背_第2页
php重要知识点总结PHP网络开发必背_第3页
php重要知识点总结PHP网络开发必背_第4页
php重要知识点总结PHP网络开发必背_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 .PHP网站开发必用知识点总结,函数一览,开发必背魔术方法 _construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。 _destruct() 当删除一个对象或对象操作终止的时候,调用该方法。 _get() 当试图读取一个并不存在的属性的时候被调用。 _set() 当试图向一个并不存在的属性写入值的时候被调用。 _call() 当试图调用一个对象并不存在的方法时,调用该方法。 _toString() 当打印一个对象的时候被调用 _clone() 当对象被克隆时,被调用_isset()_unset()_autoload($classname)_sleep()_wakeup

2、()系统常量 _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_PI 3.141592 $_SERVER $_ENV 执行环境提交至脚本的变量 $_GET $_POST $_REQUEST $_FILES $

3、_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_repo

5、rting(E_ALL) 显示所有错误 error_reporting(0)trigger_error("Cannot divide by zero", E_USER_ERROR);trythrow new Exception("执行失败");catch (Exception $ex)echo $ex;字符串处理string trim("eee ") trim ('ffffe','e') /ltrim rtrimarray explode(".", "fff.ff.f&qu

6、ot;) 按指定字符切割string implode(".", $array) 别名:join 把数组值数据按指定字符连接起来array str_split("eeeeeeee",4) 按长度切割字符串 array split("-","fff-ff-f") 按指定字符切割int strlen('ffffffff') 取字符长度string substr ( string $string , int $start , int $length ) substr($a,-2, 2) 截取字符int su

7、bstr_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

8、9; strtr("hi all, I said hello", array("hello" => "hi") 把'hello'转换成'hi'string md5_file('1.txt',false) 文件数据md5加密int strcmp(string str1, string str2) 字符串比较int strcasecmp(string str1, string str2) 忽略大小写 string str_pad($i, 10, "-=", STR_

9、PAD_LEFT) 在原字符左边补'-=',直到新字符串长度为10 STR_PAD_RIGHT STR_PAD_BOTHstring str_repeat('1', 5) 重复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&q

10、uot;); 按指定的字符切割array pathinfo(string path , int options) 返回文件路径的信息string basename ( string path , string suffix ) 返回路径中的文件名部分string dirname ( string path ) $_SERVERPHP_SELF 返回路径中的目录部分string nl2br("foo isn'tn bar") "foo isn't<br> bar" 把换行转成<br>string chr ( int

11、ascii ) *mixed str_word_count ( string string , int format , string charlist )string str_shuffle ('abc') 打乱字符串顺序string strrev($str) * 翻转一个字符串string strtolower($str) * 将字符串 $str 的字符全部转换为小写的string strtoupper($str) * 将字符串 $str 的字符全部转换为大写的string ucfirst ($str) * 将字符串 $str 的第一个单词的首字母变为大写。string u

12、cwords($str) * 将字符串 $str 的每个单词的首字母变为大写。string addslashes("I'm") I'm 使用反斜线引用字符串 这些字符是单引号(')、双引号(")、反斜线()与 NUL(NULL 字符)string stripcslashes("I'm") I'm 将用addslashes()函数处理后的字符串返回原样strip_tags("<p>tt</p>", '<p>') 去除html、xml、p

13、hp标记,第二个参数用来保留标记string urlencode(string str)string urldecode(string str)string htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES) 转换特殊字符为HTML字符编码&lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;ENT_COMPAT 对双引号进行编码,不对单引号进行编码ENT_QUOTES 对单引号和双引号进行编

14、码ENT_NOQUOTES 不对单引号或双引号进行编码string htmlentities('<p>ff</p>', ENT_QUOTES) 转换特殊字符为HTML字符编码,中文会转成乱码数组处理int count( mixed var , int mode ) 别名:sizeof() 取数组长度 string implode(".", $array) 别名:join 把数组值数据按指定字符连接起来array explode(".", "fff.ff.f") 按指定字符切割array rang

15、e(0, 6, 2) 返回数组 array(0,2,4,6) 第一个参数为起使数,第二个参数为结束数,第三个参数为数据增加步长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 ) 将数组打乱mixe

16、d array_rand ( array input , int num_req )从数组中随机取出一个或多个单元的索引或键名array array_count_values ( array input )统计数组中所有的值出现的次数array array_combine ( array keys, array values ) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值bool array_key_exists ( mixed key, array search )检查给定的键名或索引是否存在于数组中mixed array_search ( mixed needle, a

17、rray haystack , bool strict )在数组中搜索给定的值,如果成功则返回相应的键名bool is_array ( mixed var )bool in_array ( mixed needle, array haystack , bool strict )检查数组中是否存在某个值number array_sum ( array array )计算数组中所有值的和array array_unique ( array array )移除数组中重复的值mixed reset ( array &array )将数组的内部指针指向第一个单元mixed current ( a

18、rray &array )mixed next ( array &array )mixed prev ( array &array )mixed end ( array &array )mixed key ( array &array )array array_keys ( array input , mixed search_value , bool strict ) 返回数组中所有的键名array array_values ( array input ) 返回数组中所有的值bool print_r ( mixed expression , bool

19、return )void var_dump ( mixed expression , mixed expression , . )int array_unshift ( array &array, mixed var , mixed . )在数组开头插入一个或多个单元mixed array_shift ( array &array )将数组开头的单元移出数组mixed array_pop ( array &array )将数组最后一个单元弹出(出栈)array array_splice ( array $input, int offset , int length ,

20、array replacement ) 把数组中的一部分去掉并用其它值取代array array_merge ( array array1 , array array2 , array . )合并一个或多个数组array array_flip ( array trans )交换数组中的键和值int extract( array var_array , int extract_type , string prefix ) 从数组中将变量导入到当前的符号表array compact ( mixed varname , mixed . ) 建立一个数组,包括变量名和它们的值bool sort ( a

21、rray &array , int sort_flags )从最低到最高重新安排bool natsort($a)用“自然排序”算法对数组排序 bool rsort ( array &array , int sort_flags )对数组进行逆向排序(最高到最低)bool asort ( array &array , int sort_flags )对数组进行排序并保持索引关系bool arsort ( array &array , int sort_flags ) 对数组进行逆向排序并保持索引关系bool ksort ( array &array , i

22、nt sort_flags )对数组按照键名排序bool krsort ( array &array , int sort_flags )对数组按照键名逆向排序array array_filter ( array input , callback callback ) 用回调函数过滤数组中的单元bool array_walk ( array &array, callback funcname , mixed userdata ) 对数组中的每个成员应用用户函数array array_map ( callback callback, array arr1 , array . )将

23、回调函数作用到给定数组的单元上array array_fill ( int start_index, int num, mixed value ) 用给定的值填充数组 array_fill(5, 3, 'a')->array(5=>'a',6=>'a',7=>'a')array array_chunk ( array input, int size , bool preserve_keys )将一个数组分割成多个其他 isset() 变量是否存在 boolean empty() 检查变量是否存在,并判断值是

24、否为非空或非0 void unset() 销毁变量 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() 0 for off, 1 for on 当遇到反斜杆、单引号,将会自动加上一个反斜杆,保护系统和数据库的安全ini_set()

25、;安全function strReplace($str) $strResult = $str; if(!get_magic_quotes_gpc()/判断设置是否开启 $strResult = addslashes($strResult);/转换sql语句特殊字符 return $strResult;function quotes($content)/如果magic_quotes_gpc=Off,那么就开始处理if (!get_magic_quotes_gpc()/判断$content是否为数组if (is_array($content)/如果$content是数组,那么就处理它的每一个单无f

26、oreach ($content as $key=>$value)$content$key = addslashes($value);else/如果$content不是数组,那么就仅处理一次addslashes($content);/返回$contentreturn $content;smarty模板引擎将不分析<!-literal-><script>function t() </script><!-/literal->读取配置文件<!-config_load file="config.s"-><!-#

27、site_url#-><!-$smarty.config.site_url->引入文件<!-include file="index2.html"-><!-include_php file="/path/to/load_nav.php"-> $trusted_dir 指定目录下的文件捕获模板输出的数据<!-capture name='eee'->fffffffff<!-/capture-><!-$smarty.capture.eee->循环<section

28、name=loop loop=$News_IN><$News_INloop.NewsID></section><!-section name=t loop=$data-><tr><td><!-$datat.username-></td></tr><!-/section-><foreach from=$newsArray item=newsID key=k>新闻编号:<$newsID.newsID><br>新闻内容:<$newsID.news

29、Title><br><hr></foreach>判断<!-if true->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_enc

30、oding($format,'gbk','utf-8');return mb_convert_encoding(strftime($format, $timestamp),'utf-8','gbk');局部不缓存html:<!-$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"-><!-cacheless a="aaa" b="bbbb"-><!-$smarty.now|date_format:"

31、%Y-%m-%d %H:%M:%S"-><!-/cacheless->php:$smarty->register_block('cacheless', 'smarty_block_dynamic', false);/true:缓存,false:不缓存function smarty_block_dynamic($param, $content, &$smarty)return $content;php:function insert_kk()/方法名前必须有"insert"return date(

32、9;Y-m-d H:i:s');html:<!-insert name="kk"->自定义方法注册方法php$smarty->register_function('test1', 'test');function test($p)return 'ffffffffff'html:<!-test1 name="ff"->-方法自定义插件文件方式定义方法function.test.php 文件存在plugins目录下,方法名:smarty_function_test($par

33、ams, &$smarty)function smarty_function_test($params, &$smarty)return 'fff'html调用:<!-test name='aa' p='ff'->-插入方法插件文件:insert.kk.php文件存于plugins目录下function smarty_insert_kk()return date('Y-m-d H:i:s');php:function insert_kk()/方法名前必须有"insert"return

34、 date('Y-m-d H:i:s');html:<!-insert name="kk"->-管道符自定义方法插件文件方式定义方法modifier.test.php 文件存在于plugins目录下,方法名: function smarty_modifier_test($str, $str2)function smarty_modifier_test($str, $str2)return $str.$str2;html调用:<!-'ff'|test:'tt'->php:function eee($a)r

35、eturn 'ffffffffffffff'html:<!-''|eee->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 = 0is not odd是否为奇$a is not odd by $b即($a / $b) % 2 != 0XML saxxml:<-?xml version="1.0" encodin

36、g="utf-8"?-><books> <book> <author>Jack Herrington</author> <title>PHP Hacks</title> <publisher>O'Reilly</publisher> </book> <book> <author>Jack Herrington</author> <title>Podcasting Hacks</title> &l

37、t;publisher>O'Reilly</publisher> </book> <book> <author>作者</author> <title>标题</title> <publisher>出版者</publisher> </book></books>php: $g_books = array(); $g_elem = null; function startElement( $parser, $name, $attrs ) global $g_

38、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 = 'TITL

39、E' ) $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 = fre

40、ad( $f, 4096 ) xml_parse( $parser, $data ); xml_parser_free( $parser ); foreach( $g_books as $book ) echo $book'TITLE'." - ".$book'AUTHOR'." - " echo $book'PUBLISHER'."<br>" DomDocument()xml:<-?xml version="1.0" encoding="

41、utf-8"?-><books> <book> <author>Jack Herrington</author> <title>PHP Hacks</title> <publisher>O'Reilly</publisher> </book> <book> <author>Jack Herrington</author> <title>Podcasting Hacks</title> <publis

42、her>O'Reilly</publisher> </book> <book> <author>作者</author> <title>标题</title> <publisher>出版者</publisher> </book></books>php读取: $doc = new DOMDocument(); $doc->load( "1.xml"); $books = $doc->getElementsByTagName(

43、 "book" ); foreach( $books as $book ) $authors = $book->getElementsByTagName( "author" ); $author = $authors->item(0)->nodeValue; $publishers = $book->getElementsByTagName( "publisher" ); $publisher = $publishers->item(0)->nodeValue; $titles = $book-&g

44、t;getElementsByTagName( "title" ); $title = $titles->item(0)->nodeValue; echo "$title - $author - $publisher<br>" php生成:$books = array();$books = array('title' => 'PHP Hacks','author' => 'Jack Herrington','publisher' =>

45、 "O'Reilly");$books = array('title' => 'Podcasting Hacks','author' => 'Jack Herrington','publisher' => "O'Reilly");$doc = new DOMDocument();$doc->formatOutput = true;$r = $doc->createElement( "books" );$doc-

46、>appendChild( $r );foreach( $books as $book )$b = $doc->createElement( "book" );$author = $doc->createElement( "author" );$author->appendChild($doc->createTextNode( $book'author' );$b->appendChild( $author );$title = $doc->createElement( "title&q

47、uot; );$title->appendChild($doc->createTextNode( $book'title' );$b->appendChild( $title );$publisher = $doc->createElement( "publisher" );$publisher->appendChild($doc->createTextNode( $book'publisher' );$b->appendChild( $publisher );$r->appendChild(

48、$b );echo $doc->saveXML();echo $doc->save('222.xml'); SimpleXMLxml:<books> <book> <author>Jack Herrington</author> <title>PHP Hacks</title> <publisher>O'Reilly</publisher> </book></books>php:$xml = new SimpleXMLElement(

49、9;1.xml', NULL, TRUE);echo $xml->book0->author."_".$xml->book0->title."_".$xml->book0->publisher;正则ereg系列的正则表达式不需要定届符,preg系列的才需要,并且定界符可以自己选择,只有前后一对就行,比如我们一般使用/符号,但是如果里面有/需要匹配那么就需要使用/来表示,当/需要出现多次的时候,这样就不方便,我们就可以使用其他的定界符,比如|正则特殊字符. + * ? $ ( ) = ! < > |

50、: 由原子(普通字符,如英文字符)、 元字符(有特殊功用的字符) 模式修正字符 一个正则表达式中,至少包含一个原子 全部符号解释 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'n' 匹配一个换行符。序列 '' 匹配 "" 而 "(" 则匹配 "("。 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性, 也匹配 'n' 或 'r'

51、 之后的位置。 $ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 'n' 或 'r' 之前的位置。 * 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于0,。 + 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 1,。 ? 匹配前面的子表达式零次或一次。例如,"do(es)?&quo

52、t; 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 0,1。 n n 是一个非负整数。匹配确定的 n 次。例如,'o2' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。 n, n 是一个非负整数。至少匹配n 次。例如,'o2,' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o1,' 等价于

53、'o+'。'o0,' 则等价于 'o*'。 n,m m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o1,3" 将匹配 "fooooood" 中的前三个 o。'o0,1' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。 ? 当该字符紧跟在任何一个其他限制符 (*, +, ?, n, n, n,m) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于

54、字符串 "oooo",'o+?' 将匹配单个 "o",而 'o+' 将匹配所有 'o'。 . 匹配除 "n" 之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用象 '.n' 的模式。 (pattern) 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0$9 属性。要匹配圆括号字符,请使用 '(' 或

55、')'。 (?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 (?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹

56、配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 (?!pattern) 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1

57、" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始 x|y 匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。 xyz 字符集合。匹配所包含的任意一个字符。例如,

58、'abc' 可以匹配 "plain" 中的 'a'。 xyz 负值字符集合。匹配未包含的任意字符。例如, 'abc' 可以匹配 "plain" 中的'p'。 a-z 字符范围。匹配指定范围内的任意字符。例如,'a-z' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。 a-z 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'a-z' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。 b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'erb' 可以匹配"never" 中的 'er',但不能匹配 "verb"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论