程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 以前收集到的PHP總結筆記

以前收集到的PHP總結筆記

編輯:關於PHP編程

<?php 

0002 其他 

0003     isset() 變量是否存在 

0004     boolean empty() 檢查變量是否存在,並判斷值是否為非空或非0 

0005     void unset() 銷毀變量 

0006     header('Content-Type: text/html; charset=utf-8'); 

0007     method_exists($obj, $method)    判斷對象的方法是否可用 

0008     file_exists($file)  判斷文件是否存在 

0009     function_exists(); 

0010     class_exists($class_name); 

0011     gettype();獲取數據類型 

0012     set_magic_quotes_runtime() 0 for off, 1 for on 當遇到反斜桿、單引號,將會自動加上一個反斜桿,保護系統和數據庫的安全 

0013     ini_set(); 

0014   

0015 安全 

0016     function strReplace($str) 

0017     { 

0018       $strResult = $str; 

0019       if(!get_magic_quotes_gpc())//判斷設置是否開啟 

0020       { 

0021         $strResult = addslashes($strResult);//轉換sql語句特殊字符 

0022       } 

0023       return $strResult; 

0024     } 

0025   

0026   

0027     function quotes($content) 

0028     { 

0029         //如果magic_quotes_gpc=Off,那麼就開始處理 

0030         if (!get_magic_quotes_gpc()) 

0031         { 

0032             //判斷$content是否為數組 

0033             if (is_array($content)) 

0034             { 

0035                 //如果$content是數組,那麼就處理它的每一個單無 

0036                 foreach ($content as $key=>$value) 

0037                 { 

0038                     $content[$key] = addslashes($value); 

0039                 } 

0040             } 

0041             else

0042             { 

0043                 //如果$content不是數組,那麼就僅處理一次 

0044                 addslashes($content); 

0045             } 

0046         } 

0047         //返回$content 

0048         return $content; 

0049     } 

0050   

0051 編碼轉換 

0052     string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] ) 

0053     iconv(); 

0054   

0055 時間 

0056     date_default_timezone_set("PRC"); 

0057     date("Y-m-d H:i:s"); 

0058     time(); 

0059     date("Y-m-d H:i:s",time()+3600) 

0060     ini_set('date.timezone', 'PRC'); 

0061     msec sec microtime() 以秒返回時間戳 explode(' ', microtime()) 

0062   

0063 魔術方法 

0064     __construct() 當實例化一個對象的時候,這個對象的這個方法首先被調用。 

0065     __destruct() 當刪除一個對象或對象操作終止的時候,調用該方法。 

0066     __get() 當試圖讀取一個並不存在的屬性的時候被調用。 

0067     __set() 當試圖向一個並不存在的屬性寫入值的時候被調用。 

0068     __call() 當試圖調用一個對象並不存在的方法時,調用該方法。 

0069     __toString() 當打印一個對象的時候被調用 

0070     __clone() 當對象被克隆時,被調用 

0071     __isset() 

0072     __unset() 

0073     __autoload($classname) 

0074     __sleep() 

0075     __wakeup() 

0076   

0077 系統常量 

0078     __FILE__ 當前文件名 

0079     __LINE__ 當前行數 

0080     __FUNCTION__ 當前函數名 

0081     __CLASS__ 當前類名 

0082     __METHOD__ 當前對象的方法名 

0083     PHP_OS 當前系統 

0084     PHP_VERSION php版本 

0085     DIRECTORY_SEPARATOR 根據系統決定目錄的分隔符 /\ 

0086     PATH_SEPARATOR 根據系統決定環境變量的目錄列表分隔符 ; : 

0087     E_ERROR 1 

0088     E_WARNING 2 

0089     E_PARSE 4 

0090     E_NOTICE 8 

0091     M_PI    3.141592 

0092     $_SERVER

0093     $_ENV 執行環境提交至腳本的變量 

0094     $_GET

0095     $_POST

0096     $_REQUEST

0097     $_FILES

0098     $_COOKIE

0099     $_SESSION

0100     $_GLOBALS

0101   

0102 輸出 

0103     echo   //Output one or more strings 

0104     print    //Output a string 

0105     print_r()  //打印關於變量的易於理解的信息。 

0106     var_dump()  //打印變量的相關信息 

0107     var_export()  //輸出或返回一個變量的字符串表示 

0108     printf("%.1f",$num)  //Output a formatted string 

0109     sprintf()  //Return a formatted string 

0110   

0111 錯誤處理 

0112     @1/0 

0113     error_reporting(E_ALL) 顯示所有錯誤 

0114     error_reporting(0) 

0115     trigger_error("Cannot divide by zero", E_USER_ERROR); 

0116     try 

0117     { 

0118         throw new Exception("執行失敗"); 

0119     } 

0120     catch (Exception $ex) 

0121     { 

0122         echo $ex; 

0123     } 

0124   

0125 字符串處理 

0126     string trim("eee ") trim ('ffffe','e')  //ltrim rtrim 

0127     array explode(".", "fff.ff.f") 按指定字符切割 

0128     string implode(".", $array)  別名:join   把數組值數據按指定字符連接起來 

0129     array str_split("eeeeeeee",4) 按長度切割字符串 

0130     array split("-","fff-ff-f") 按指定字符切割 

0131     int strlen('ffffffff')  取字符長度 

0132     string substr ( string $string , int $start [, int $length ] ) 

0133         substr($a,-2, 2) 截取字符 

0134     int substr_count($text, 'is') 字符串出現的次數 

0135     string strstr($text, 'h') 第一次出現h後的字符串   //別名:strchr 

0136     int strpos($text, 'h') 第一次出現h的位置 

0137     strrpos();最後一次出現h的位置 

0138     str_replace('a', 'ttt', $t) 把$t裡的'a'替換為'ttt'

0139     strtr($t,'is','ppp') 把$t中'is'替換成'ppp'

0140         strtr("hi all, I said hello", array("hello" => "hi")) 把'hello'轉換成'hi'

0141     string md5_file('1.txt',false) 文件數據md5加密 

0142     int strcmp(string str1, string str2) 字符串比較 

0143     int strcasecmp(string str1, string str2) 忽略大小寫 

0144     string str_pad($i, 10, "-=", STR_PAD_LEFT) 在原字符左邊補'-=',直到新字符串長度為10 

0145         STR_PAD_RIGHT 

0146         STR_PAD_BOTH 

0147     string str_repeat('1', 5) 重復5個1 

0148     void parse_str('id=11'); echo $id; 將字串符解析為變量 

0149     array preg_grep("/^(\d+)?\.\d+$/", array(11.2,11,11.2)) 匹配數據 

0150     array preg_split ("/[\s,]+/", "hypertext language,programming"); 按指定的字符切割 

0151     array pathinfo(string path [, int options]) 返回文件路徑的信息 

0152     string basename ( string path [, string suffix] ) 返回路徑中的文件名部分 

0153     string dirname ( string path )  $_SERVER[PHP_SELF]  返回路徑中的目錄部分 

0154     string nl2br("foo isn't\n bar") "foo isn't<br> bar" 把換行轉成<br> 

0155     string chr ( int ascii )    * 

0156     mixed str_word_count ( string string [, int format [, string charlist]] ) 

0157     string str_shuffle ('abc') 打亂字符串順序 

0158     string strrev($str) *         翻轉一個字符串 

0159     string strtolower($str) *     將字符串 $str 的字符全部轉換為小寫的 

0160     string strtoupper($str) *     將字符串 $str 的字符全部轉換為大寫的 

0161     string ucfirst ($str)   *       將字符串 $str 的第一個單詞的首字母變為大寫。 

0162     string ucwords($str)    *        將字符串 $str 的每個單詞的首字母變為大寫。 

0163   

0164     string addslashes("I'm") I\'m 使用反斜線引用字符串 這些字符是單引號(')、雙引號(")、反斜線(\)與 NUL(NULL 字符) 

0165     string stripcslashes("I\'m") I'm 將用addslashes()函數處理後的字符串返回原樣 

0166     strip_tags("<p>tt</p>", '<p>') 去除html、xml、php標記,第二個參數用來保留標記 

0167     string urlencode(string str) 

0168     string urldecode(string str) 

0169     string htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES) 轉換特殊字符為HTML字符編碼 

0170         &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt; 

0171         ENT_COMPAT –對雙引號進行編碼,不對單引號進行編碼 

0172         ENT_QUOTES –對單引號和雙引號進行編碼 

0173         ENT_NOQUOTES –不對單引號或雙引號進行編碼 

0174     string htmlentities('<p>ff</p>', ENT_QUOTES) 轉換特殊字符為HTML字符編碼,中文會轉成亂碼 

0175   

0176 數組處理 

0177     int count( mixed var [, int mode] ) 別名:sizeof() 取數組長度 

0178     string implode(".", $array)  別名:join   把數組值數據按指定字符連接起來 

0179     array explode(".", "fff.ff.f") 按指定字符切割 

0180     array range(0, 6, 2) 返回數組 array(0,2,4,6) 第一個參數為起使數,第二個參數為結束數,第三個參數為數據增加步長 

0181     int array_push($a, "3", 1) 把'3'、'1'壓入$a,將一個或多個單元壓入數組的末尾(入棧),第二個參數開始就是壓入的數據 

0182     void unset ( mixed var [, mixed var [, ...]] ) 

0183     array array_pad ($a, 5, 's')用's'將數組填補到指定長度 

0184     bool shuffle ( array $array )  將數組打亂 

0185     mixed array_rand ( array input [, int num_req] )從數組中隨機取出一個或多個單元的索引或鍵名 

0186     array array_count_values ( array input )統計數組中所有的值出現的次數 

0187     array array_combine ( array keys, array values ) 創建一個數組,用一個數組的值作為其鍵名,另一個數組的值作為其值 

0188     bool array_key_exists ( mixed key, array search )檢查給定的鍵名或索引是否存在於數組中 

0189     mixed array_search ( mixed needle, array haystack [, bool strict] )在數組中搜索給定的值,如果成功則返回相應的鍵名 

0190     bool is_array ( mixed var ) 

0191     bool in_array ( mixed needle, array haystack [, bool strict] )檢查數組中是否存在某個值 

0192     number array_sum ( array array )計算數組中所有值的和 

0193     array array_unique ( array array )移除數組中重復的值 

0194     mixed reset ( array &array )將數組的內部指針指向第一個單元 

0195     mixed current ( array &array ) 

0196     mixed next ( array &array ) 

0197     mixed prev ( array &array ) 

0198     mixed end ( array &array ) 

0199     mixed key ( array &array ) 

0200     array array_keys ( array input [, mixed search_value [, bool strict]] ) 返回數組中所有的鍵名 

0201     array array_values ( array input ) 返回數組中所有的值 

0202     bool print_r ( mixed expression [, bool return] ) 

0203     void var_dump ( mixed expression [, mixed expression [, ...]] ) 

0204     int array_unshift ( array &array, mixed var [, mixed ...] )在數組開頭插入一個或多個單元 

0205     mixed array_shift ( array &array )將數組開頭的單元移出數組 

0206     mixed array_pop ( array &array )將數組最後一個單元彈出(出棧) 

0207     array array_splice ( array $input, int offset [, int length [, array replacement]] ) 把數組中的一部分去掉並用其它值取代 

0208     array array_merge ( array array1 [, array array2 [, array ...]] )合並一個或多個數組 

0209     array array_flip ( array trans )交換數組中的鍵和值 

0210     int extract( array var_array [, int extract_type [, string prefix]] ) 從數組中將變量導入到當前的符號表 

0211     array compact ( mixed varname [, mixed ...] ) 建立一個數組,包括變量名和它們的值 

0212     bool sort ( array &array [, int sort_flags] )從最低到最高重新安排 

0213     bool natsort($a)    用“自然排序”算法對數組排序 

0214     bool rsort ( array &array [, int sort_flags] )對數組進行逆向排序(最高到最低) 

0215     bool asort ( array &array [, int sort_flags] )對數組進行排序並保持索引關系 

0216     bool arsort ( array &array [, int sort_flags] ) 對數組進行逆向排序並保持索引關系 

0217     bool ksort ( array &array [, int sort_flags] )對數組按照鍵名排序 

0218     bool krsort ( array &array [, int sort_flags] )對數組按照鍵名逆向排序 

0219     array array_filter ( array input [, callback callback] ) 用回調函數過濾數組中的單元 

0220     bool array_walk ( array &array, callback funcname [, mixed userdata] ) 對數組中的每個成員應用用戶函數 

0221     array array_map ( callback callback, array arr1 [, array ...] )將回調函數作用到給定數組的單元上 

0222     array array_fill ( int start_index, int num, mixed value ) 用給定的值填充數組 

0223         array_fill(5, 3, 'a')-->array(5=>'a',6=>'a',7=>'a') 

0224     array array_chunk ( array input, int size [, bool preserve_keys] )將一個數組分割成多個 

0225   

0226 smarty 

0227     模板引擎將不分析 

0228         <!--{literal}--> 

0229         <script> 

0230             function t() { 

0231             } 

0232         </script> 

0233         <!--{/literal}--> 

0234     讀取配置文件 

0235         <!--{config_load file="config.s"}--> 

0236         <!--{#site_url#}--> 

0237         <!--{$smarty.config.site_url}--> 

0238     引入文件 

0239         <!--{include file="index2.html"}--> 

0240         <!--{include_php file="/path/to/load_nav.php"}--> $trusted_dir 指定目錄下的文件 

0241     捕獲模板輸出的數據 

0242         <!--{capture name='eee'}--> 

0243             fffffffff 

0244         <!--{/capture}--> 

0245         <!--{$smarty.capture.eee}--> 

0246     循環 

0247         <{section name=loop loop=$News_IN}> 

0248             <{$News_IN[loop].NewsID}> 

0249         <{/section}> 

0250   

0251         <!--{section name=t loop=$data}--> 

0252             <tr> 

0253                 <td><!--{$data[t].username}--></td> 

0254             </tr> 

0255         <!--{/section}--> 

0256   

0257         <{foreach from=$newsArray item=newsID key=k}> 

0258             新聞編號:<{$newsID.newsID}><br> 

0259             新聞內容:<{$newsID.newsTitle}><br><hr> 

0260         <{/foreach}> 

0261     判斷 

0262         <!--{if true}--> 

0263             1111 

0264         <!--{else}--> 

0265             22222222 

0266         <!--{/if}--> 

0267     時間 

0268         {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"} 

0269         %Y年%m月%d日 亂碼 

0270             <!--{$smarty.now|date_format:"%Y年%m月%d日 %H時%M分%S秒"}--> 

0271             修改插件:plugins/modifier.date_format.php 

0272             $format = mb_convert_encoding($format,'gbk','utf-8'); 

0273             return mb_convert_encoding(strftime($format, $timestamp),'utf-8','gbk'); 

0274   

0275     局部不緩存 

0276         html: 

0277             <!--{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}--> 

0278             <!--{cacheless  a="aaa" b="bbbb"}--> 

0279                 <!--{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}--> 

0280             <!--{/cacheless}--> 

0281         php: 

0282             $smarty->register_block('cacheless', 'smarty_block_dynamic', false);//true:緩存,false:不緩存 

0283             function smarty_block_dynamic($param, $content, &$smarty) 

0284             { 

0285                 return $content; 

0286             } 

0287   

0288         php: 

0289             function insert_kk()//方法名前必須有"insert" 

0290             { 

0291                 return date('Y-m-d H:i:s'); 

0292             } 

0293         html: 

0294             <!--{insert name="kk"}--> 

0295     自定義方法 

0296         注冊方法 

0297             php 

0298                 $smarty->register_function('test1', 'test'); 

0299                 function test($p) 

0300                 { 

0301                     return 'ffffffffff'; 

0302                 } 

0303             html: 

0304                 <!--{test1 name="ff"}--> 

0305         ------------------------------------------------ 

0306         方法自定義 

0307             插件文件方式定義方法 

0308                 function.test.php 文件存在plugins目錄下,方法名:smarty_function_test($params, &$smarty) 

0309                     function smarty_function_test($params, &$smarty) 

0310                     { 

0311                         return 'fff'; 

0312                     } 

0313             html調用: 

0314                 <!--{test name='aa' p='ff'}--> 

0315         ---------------------------------------------------- 

0316         插入方法 

0317             插件文件:insert.kk.php文件存於plugins目錄下 

0318                 function smarty_insert_kk() 

0319                 { 

0320                     return date('Y-m-d H:i:s'); 

0321                 } 

0322             php: 

0323                 function insert_kk()//方法名前必須有"insert" 

0324                 { 

0325                     return date('Y-m-d H:i:s'); 

0326                 } 

0327             html: 

0328                 <!--{insert name="kk"}--> 

0329         ------------------------------------------------- 

0330         管道符自定義方法 

0331             插件文件方式定義方法 

0332                 modifier.test.php 文件存在於plugins目錄下,方法名: function smarty_modifier_test($str, $str2) 

0333                     function smarty_modifier_test($str, $str2) 

0334                     { 

0335                         return $str.$str2; 

0336                     } 

0337             html調用: 

0338                 <!--{'ff'|test:'tt'}--> 

0339   

0340             php: 

0341                 function eee($a) 

0342                 { 

0343                     return 'ffffffffffffff'; 

0344                 } 

0345             html: 

0346                 <!--{''|@eee}--> 

0347     if語句 

0348         eq相等, 

0349         ne、neq不相等, 

0350         gt大於 

0351         gte、ge大於等於, 

0352         lte、le 小於等於, 

0353         not非, mod求模。 

0354         is [not] div by是否能被某數整除, 

0355         is [not] even是否為偶數, 

0356         $a is [not] even by $b 即($a / $b) % 2 == 0 

0357         is [not] odd是否為奇 

0358         $a is not odd by $b即($a / $b) % 2 != 0 

0359   

0360 XML 

0361     sax 

0362         xml: 

0363             <--?xml version="1.0" encoding="utf-8"?--> 

0364             <books> 

0365               <book> 

0366                   <author>Jack Herrington</author> 

0367                   <title>PHP Hacks</title> 

0368                   <publisher>O'Reilly</publisher> 

0369               </book> 

0370               <book> 

0371                   <author>Jack Herrington</author> 

0372                   <title>Podcasting Hacks</title> 

0373                   <publisher>O'Reilly</publisher> 

0374               </book> 

0375               <book> 

0376                   <author>作者</author> 

0377                   <title>標題</title> 

0378                   <publisher>出版者</publisher> 

0379               </book> 

0380             </books> 

0381         php: 

0382           $g_books = array(); 

0383           $g_elem = null; 

0384   

0385           function startElement( $parser, $name, $attrs ) 

0386           { 

0387               global $g_books, $g_elem; 

0388               if ( $name == 'BOOK' ) $g_books []= array(); 

0389               $g_elem = $name; 

0390           } 

0391   

0392           function endElement( $parser, $name ) 

0393           { 

0394               global $g_elem; 

0395               $g_elem = null; 

0396           } 

0397   

0398           function textData( $parser, $text ) 

0399           { 

0400               global $g_books, $g_elem; 

0401               if ( $g_elem == 'AUTHOR' || 

0402                   $g_elem == 'PUBLISHER' || 

0403                   $g_elem == 'TITLE' ) 

0404               { 

0405                 $g_books[ count( $g_books ) - 1 ][ $g_elem ] = $text; 

0406               } 

0407           } 

0408   

0409           $parser = xml_parser_create(); 

0410   

0411           xml_set_element_handler( $parser, "startElement", "endElement" ); 

0412           xml_set_character_data_handler( $parser, "textData" ); 

0413   

0414           $f = fopen( '1.xml', 'r' ); 

0415   

0416           while($data = fread( $f, 4096 )) 

0417           { 

0418             xml_parse( $parser, $data ); 

0419           } 

0420   

0421           xml_parser_free( $parser ); 

0422   

0423           foreach( $g_books as $book ) 

0424           { 

0425               echo $book['TITLE']." - ".$book['AUTHOR']." - "; 

0426               echo $book['PUBLISHER']."<br>"; 

0427           } 

0428     DomDocument() 

0429         xml: 

0430             <--?xml version="1.0" encoding="utf-8"?--> 

0431             <books> 

0432               <book> 

0433                   <author>Jack Herrington</author> 

0434                   <title>PHP Hacks</title> 

0435                   <publisher>O'Reilly</publisher> 

0436               </book> 

0437               <book> 

0438                   <author>Jack Herrington</author> 

0439                   <title>Podcasting Hacks</title> 

0440                   <publisher>O'Reilly</publisher> 

0441               </book> 

0442               <book> 

0443                   <author>作者</author> 

0444                   <title>標題</title> 

0445                   <publisher>出版者</publisher> 

0446               </book> 

0447             </books> 

0448         php讀取: 

0449               $doc = new DOMDocument(); 

0450               $doc->load( "1.xml"); 

0451   

0452               $books = $doc->getElementsByTagName( "book" ); 

0453               foreach( $books as $book ) 

0454               { 

0455                   $authors = $book->getElementsByTagName( "author" ); 

0456                   $author = $authors->item(0)->nodeValue; 

0457   

0458                   $publishers = $book->getElementsByTagName( "publisher" ); 

0459                   $publisher = $publishers->item(0)->nodeValue; 

0460   

0461                   $titles = $book->getElementsByTagName( "title" ); 

0462                   $title = $titles->item(0)->nodeValue; 

0463   

0464                   echo "$title - $author - $publisher<br>"; 

0465               } 

0466         php生成: 

0467             $books = array(); 

0468             $books [] = array( 

0469                 'title' => 'PHP Hacks', 

0470                 'author' => 'Jack Herrington', 

0471                 'publisher' => "O'Reilly"

0472                 ); 

0473             $books [] = array( 

0474                 'title' => 'Podcasting Hacks', 

0475                 'author' => 'Jack Herrington', 

0476                 'publisher' => "O'Reilly"

0477                 ); 

0478   

0479             $doc = new DOMDocument(); 

0480             $doc->formatOutput = true; 

0481   

0482             $r = $doc->createElement( "books" ); 

0483             $doc->appendChild( $r ); 

0484   

0485             foreach( $books as $book ) 

0486             { 

0487                 $b = $doc->createElement( "book" ); 

0488                 $author = $doc->createElement( "author" ); 

0489                 $author->appendChild($doc->createTextNode( $book['author'] )); 

0490                 $b->appendChild( $author ); 

0491   

0492                 $title = $doc->createElement( "title" ); 

0493                 $title->appendChild($doc->createTextNode( $book['title'] )); 

0494                 $b->appendChild( $title ); 

0495   

0496                 $publisher = $doc->createElement( "publisher" ); 

0497                 $publisher->appendChild($doc->createTextNode( $book['publisher'] )); 

0498                 $b->appendChild( $publisher ); 

0499                 $r->appendChild( $b ); 

0500             } 

0501   

0502             echo $doc->saveXML(); 

0503             echo $doc->save('222.xml'); 

0504     SimpleXML 

0505         xml: 

0506         <books> 

0507           <book> 

0508               <author>Jack Herrington</author> 

0509               <title>PHP Hacks</title> 

0510               <publisher>O'Reilly</publisher> 

0511           </book> 

0512         </books> 

0513         php: 

0514         $xml = new SimpleXMLElement('1.xml', NULL, TRUE); 

0515         echo $xml->book[0]->author."___".$xml->book[0]->title."___".$xml->book[0]->publisher; 

0516   

0517 正則 

0518     ereg系列的正則表達式不需要定屆符,preg系列的才需要,並且定界符可以自己選擇,只有前後一對就行,比如我們一般使用/符號,但是如果裡面有/需要匹配那麼就需要使用\/來表示,當/需要出現多次的時候,這樣就不方便,我們就可以使用其他的定界符,比如| 

0519   

0520   

0521     正則特殊字符 

0522         . \ + * ? [ ^ ] $ ( ) { } = ! < > | : 

0523     由原子(普通字符,如英文字符)、 

0524     元字符(有特殊功用的字符) 

0525     模式修正字符 

0526     一個正則表達式中,至少包含一個原子 

0527   

0528     全部符號解釋 

0529         \  將下一個字符標記為一個特殊字符、或一個原義字符、或一個 向後引用、或一個八進制轉義符。例如,'n' 匹配字符 "n"。'\n' 匹配一個換行符。序列 '\\' 匹配 "\" 而 "\(" 則匹配 "("。 

0530         ^  匹配輸入字符串的開始位置。如果設置了 RegExp 對象的 Multiline 屬性,^ 也匹配 '\n' 或 '\r' 之後的位置。 

0531         $  匹配輸入字符串的結束位置。如果設置了RegExp 對象的 Multiline 屬性,$ 也匹配 '\n' 或 '\r' 之前的位置。 

0532         *  匹配前面的子表達式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等價於{0,}。 

0533         +  匹配前面的子表達式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 {1,}。 

0534         ?  匹配前面的子表達式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等價於 {0,1}。 

0535         {n}  n 是一個非負整數。匹配確定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的兩個 o。 

0536         {n,}  n 是一個非負整數。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o。'o{1,}' 等價於 'o+'。'o{0,}' 則等價於 'o*'。 

0537         {n,m}  m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 將匹配 "fooooood" 中的前三個 o。'o{0,1}' 等價於 'o?'。請注意在逗號和兩個數之間不能有空格。 

0538         ?  當該字符緊跟在任何一個其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹配所搜索的字符串,而默認的貪婪模式則盡可能多的匹配所搜索的字符串。例如,對於字符串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配所有 'o'。 

0539         .  匹配除 "\n" 之外的任何單個字符。要匹配包括 '\n' 在內的任何字符,請使用象 '[.\n]' 的模式。 

0540         (pattern)  匹配 pattern 並獲取這一匹配。所獲取的匹配可以從產生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中則使用 $0…$9 屬性。要匹配圓括號字符,請使用 '\(' 或 '\)'。 

0541         (?:pattern)  匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以後使用。這在使用 "或" 字符 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡略的表達式。 

0542         (?=pattern)  正向預查,在任何匹配 pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始。 

0543         (?!pattern)  負向預查,在任何不匹配 pattern 的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。預查不消耗字符,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜索,而不是從包含預查的字符之後開始 

0544         x|y  匹配 x 或 y。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。 

0545         [xyz]  字符集合。匹配所包含的任意一個字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。 

0546         [^xyz]  負值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。 

0547         [a-z]  字符范圍。匹配指定范圍內的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范圍內的任意小寫字母字符。 

0548         [^a-z]  負值字符范圍。匹配任何不在指定范圍內的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范圍內的任意字符。 

0549         \b  匹配一個單詞邊界,也就是指單詞和空格間的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 

0550         \B  匹配非單詞邊界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 

0551         \cx  匹配由 x 指明的控制字符。例如, \cM 匹配一個 Control-M 或回車符。x 的值必須為 A-Z 或 a-z 之一。否則,將 c 視為一個原義的 'c' 字符。 

0552         \d  匹配一個數字字符。等價於 [0-9]。 

0553         \D  匹配一個非數字字符。等價於 [^0-9]。 

0554         \f  匹配一個換頁符。等價於 \x0c 和 \cL。 

0555         \n  匹配一個換行符。等價於 \x0a 和 \cJ。 

0556         \r  匹配一個回車符。等價於 \x0d 和 \cM。 

0557         \s  匹配任何空白字符,包括空格、制表符、換頁符等等。等價於 [ \f\n\r\t\v]。 

0558         \S  匹配任何非空白字符。等價於 [^ \f\n\r\t\v]。 

0559         \t  匹配一個制表符。等價於 \x09 和 \cI。 

0560         \v  匹配一個垂直制表符。等價於 \x0b 和 \cK。 

0561         \w  匹配包括下劃線的任何單詞字符。等價於'[A-Za-z0-9_]'。 

0562         \W  匹配任何非單詞字符。等價於 '[^A-Za-z0-9_]'。 

0563         \xn  匹配 n,其中 n 為十六進制轉義值。十六進制轉義值必須為確定的兩個數字長。例如,'\x41' 匹配 "A"。'\x041' 則等價於 '\x04' & "1"。正則表達式中可以使用 ASCII 編碼。. 

0564         \num  匹配 num,其中 num 是一個正整數。對所獲取的匹配的引用。例如,'(.)\1' 匹配兩個連續的相同字符。 

0565         \n  標識一個八進制轉義值或一個向後引用。如果 \n 之前至少 n 個獲取的子表達式,則 n 為向後引用。否則,如果 n 為八進制數字 (0-7),則 n 為一個八進制轉義值。 

0566         \nm  標識一個八進制轉義值或一個向後引用。如果 \nm 之前至少有 nm 個獲得子表達式,則 nm 為向後引用。如果 \nm 之前至少有 n 個獲取,則 n 為一個後跟文字 m 的向後引用。如果前面的條件都不滿足,若 n 和 m 均為八進制數字 (0-7),則 \nm 將匹配八進制轉義值 nm。 

0567         \nml  如果 n 為八進制數字 (0-3),且 m 和 l 均為八進制數字 (0-7),則匹配八進制轉義值 nml。 

0568         \un  匹配 n,其中 n 是一個用四個十六進制數字表示的 Unicode 字符。例如, \u00A9 匹配版權符號 (?)。 

0569     例子 

0570         /\b([a-z]+)\b/i 單詞數量 

0571         /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/  將一個URL解析為協議、域、端口及相對路徑 

0572         /^(?:Chapter|Section) [1-9][0-9]{0,1}$/ 定位章節的位置 

0573         /[-a-z]/ A至z共26個字母再加一個-號。 

0574         /ter\b/ 可匹配chapter,而不能terminal 

0575         /\Bapt/ 可匹配chapter,而不能aptitude 

0576         /Windows(?=95 |98 |NT )/ 可匹配Windows95或Windows98或WindowsNT,當找到一個匹配後,從Windows後面開始進行下一次的檢索匹配。 

0577         ^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$ Email 合法格式檢查 

0578         ^[0-9]+$ 純數據檢查 

0579         ^[0-9a-z]{1}[0-9a-z\-]{0,19}$ 用戶名檢查,字母和數字開始,只能含字母、數字、橫槓 

0580   

0581     模式修正符 

0582         i 忽略大小寫 

0583         s 如果設定了此修正符,模式中的圓點元字符(.)匹配所有的字符,包括換行符 

0584         e 只用在preg_replace(),在替換字符串中對逆向引用作正常的替換,將其作為 PHP 代碼求值,並用其結果來替換所搜索的字符串。 

0585         如: 

0586         $p = '/\[colorFont\](.+?)\[\/colorFont\]/ie'; 

0587         $t = '"<img src='color.php?t=".urlencode("\1")."\'/>"'; 

0588         ecoh preg_replace($p,$t,$string); 

0589         這裡必須加上e修正,才能將匹配到的內容用urlencode處理 

0590         U 貪婪模式,最大限度匹配 

0591         如:/a[\w]+?e/U匹配abceadeddd中的abceade而不是abce,如果不加U修正,則匹配abce 

0592         A 強制從字符串開頭匹配,即自動在模式開頭加上^ 

0593         m 當設定了此修正符,“行起始” ^ 和“行結束” $ 除了匹配整個字符串開頭和結束外,還分別匹配其中的換行符的之後和之前。如果目標字符串中沒有“\n”字符或者模式中沒有 ^ 或 $,則設定此修正符沒有任何效果。 

0594         D 模式中的美元元字符僅匹配目標字符串的結尾。沒有此選項時,如果最後一個字符是換行符的話,美元符號也會匹配此字符之前。如果設定了 m 修正符則忽略此選項 

0595     例子 

0596         匹配中文 

0597             preg_match_all('/[^\x00-\x80]+/', '中華s人s民', $a) 

0598             如果你的文件是gb2312的,用/[\xa0-\xff]{2}/ 

0599             如果是utf8的,用/[\xe0-\xef][\x80-\xbf]{2}/ 

0600         匹配郵箱地址 

0601             preg_match('/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/', '[email protected]') 

0602         替換空白字符 

0603             $s = preg_replace('/[\s\v]+/','','  sss sdd ss '); 

0604         替換 

0605             $string = "April 15, 2003"; 

0606             $pattern = "/(\w+) (\d+), (\d+)/i"; 

0607             $replacement = "\${1}1,\${3}1-$2"; 

0608             echo preg_replace($pattern, $replacement, $string); 

0609         匹配帳號是否合法(字母開頭,允許5-6字節,允許字母數字下劃線) 

0610             preg_match('/^[a-zA-Z][a-zA-Z0-9_]{4,5}$/', 'a011a') 

0611         匹配數字 

0612             /^-\d*$/ 匹配負整數 

0613             /^-?\d*$/ 匹配整數 

0614         匹配浮點數 

0615             preg_match("/^-?(\d*.\d*|0.\d*|0?.0+|0)$/", "11") 

0616         匹配電話號碼 

0617             preg_match("/^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7}){1,1}(\-[0-9]{1,4}){0,1}$/","0511-22345678-11") 

0618         匹配手機號碼 

0619             preg_match("/^1(3|5)\d{9}$/","13717897211") 

0620   

0621 文件處理 

0622     文件屬性 

0623         file_exists('1.php') 文件或目錄是否存在 

0624         filesize() 取得文件大小 

0625         is_readable() 判斷給定文件名是否可讀 

0626         is_writable() 判斷給定文件名是否可寫 

0627         is_executable() 判斷給定文件名是否可執行 

0628         filectime() 獲取文件的創造時間 

0629         filemtime() 獲取文件的修改時間 

0630         fileatime() 獲取文件的訪問時間 

0631         stat() 獲取文件大部分屬性值 

0632     解析目錄 

0633         basename() 返回路徑中的文件名部分 

0634         dirname() 返回目錄 

0635         pathinfo() 返回目錄名、基本名和擴展名的關聯數組 

0636     遍歷目錄 

0637         opendir() 打開指定目錄 

0638         readdir() 關閉指定目錄 

0639         closedir() 關閉指定目錄 

0640         rewinddir() 倒回目錄句柄 

0641             $dir_handle=opendir('.'); 

0642             while($file=readdir($dir_handle)) 

0643             { 

0644                 echo filesize($file).'___'.$file.'<br>'; 

0645             } 

0646             closedir($dir_handle); 

0647     建立和刪除目錄 

0648         mkdir() 創建目錄 

0649         rmdir() 刪除空目錄 

0650     文件操作 

0651         fopen() 

0652         fclose() 

0653         fwrite() 寫入文件 

0654         fputs() fwrite的別名 

0655         file_put_contents($文件名,$內容) 把內容存成文件 

0656         file_get_contents() 從文件讀出內容 

0657     文件讀取 

0658         fread() 

0659         stream_get_contents() 

0660         fgets() 從文件指針中讀取一行 

0661         feof() 測試文件指針是否到了文件結束的位置 

0662         fgetc() 從文件指針中讀取字符 

0663         file() 

0664         readfile() 讀入一個文件並寫入到輸出緩沖 

0665         ftell()返回文件指針的當前位置 

0666         fseek() 移動文件指針到指定的位置 

0667         rewind() 移動文件指針到文件的開頭 

0668         flock() 文件鎖定 

0669         copy() 復制文件 

0670         unlink() 刪除文件 

0671         ftruncate() 將文件截斷到指定的長度 

0672         rename() 重命名文件或目錄 

0673     文件控制 

0674         chgrp

0675         chmod ( string $filename , int $mode ) 

0676         chown

0677     保存讀取文件 

0678         -----------把內容存成文件 

0679         $cache_file = fopen('f:\1.txt', 'w+'); 

0680         fwrite($cache_file, $t); 

0681         -----------把內容存成文件 

0682         $s = "內容"; 

0683         file_put_contents('f:/2.txt',$s); 

0684         -----------把文件內容讀成字符串 

0685         $s = file_get_contents('f:/2.txt'); 

0686         echo $s; 

0687         -----------把文件內容按行讀成字符串 

0688         $handle = @fopen("f:/2.txt", "r"); 

0689         if ($handle) 

0690         { 

0691             while (!feof($handle)) 

0692             { 

0693                 $buffer = fgets($handle, 4096); 

0694                 echo $buffer.'<br>'; 

0695             } 

0696             fclose($handle); 

0697         } 

0698         ---------- 

0699   

0700 session/cookie 

0701     setcookie("MyCookie[foo]", 'Testing 1', time()+3600) 

0702     session_start() 

0703     ini_set('session.cookie_lifetime',0); session對應cookie存活時間 

0704     ini_set('session.save_path', 'dir'); 

0705     ini_set('session.save_path', '2;session');session分兩級存放 

0706     ini_set('session.name','SNS'); 

0707     客戶端禁用Cookie 

0708         session.use_trans_sid = 1 開啟url傳遞sessionId php.ini 

0709     session銷毀 

0710   

0711   

0712 mysql 

0713     $link = mysql_connect('localhost','root','root') or die(mysql_errno()); 

0714     mysql_select_db('test') or die (mysql_errno()); 

0715     mysql_query('SET NAMES gbk'); 

0716     $sql = "SELECT * FROM test LIMIT 0,20"; 

0717     $result = mysql_query($sql) or die(mysql_errno()); 

0718     while($msg = mysql_fetch_array($result)){ 

0719         print_r($msg); 

0720     } 

0721     mysql_free_result($result); 

0722     mysql_close($link); 

0723   

0724 mysqli 

0725     查詢 

0726         -------------------------------過程 

0727         $db_host="localhost";   //連接的服務器地址 

0728         $db_user="root";    //連接數據庫的用戶名 

0729         $db_psw="root";     //連接數據庫的密碼 

0730         $db_name="test"; //連接的數據庫名稱 

0731         $mysqli=mysqli_connect($db_host,$db_user,$db_psw,$db_name); 

0732         mysqli_query($mysqli,'SET NAMES utf8'); 

0733         $query="select * from users"; 

0734         $result=mysqli_query($mysqli,$query); 

0735         while($row =mysqli_fetch_array($result)) //循環輸出結果集中的記錄 

0736         { 

0737             echo ($row['id'])."<br>"; 

0738             echo ($row['username'])."<br>"; 

0739             echo ($row['password'])."<br>"; 

0740             echo "<hr>"; 

0741         } 

0742         mysqli_free_result($result); 

0743         mysqli_close($mysqli); 

0744         -------------------------------對象 

0745         $db_host="localhost";   //連接的服務器地址 

0746         $db_user="root";    //連接數據庫的用戶名 

0747         $db_psw="root";     //連接數據庫的密碼 

0748         $db_name="test"; //連接的數據庫名稱 

0749         $mysqli=new mysqli($db_host,$db_user,$db_psw,$db_name); 

0750         $mysqli->query('SET NAMES utf8'); 

0751         $query="select * from users"; 

0752         $result=$mysqli->query($query); 

0753         if ($result) 

0754         { 

0755             if($result->num_rows>0) //判斷結果集中行的數目是否大於0 

0756             { 

0757                 while($row =$result->fetch_array()) //循環輸出結果集中的記錄 

0758                 { 

0759                     echo ($row[0])."<br>"; 

0760                     echo ($row[1])."<br>"; 

0761                     echo ($row[2])."<br>"; 

0762                     echo "<hr>"; 

0763                 } 

0764             } 

0765         } 

0766         else

0767         { 

0768             echo "查詢失敗"; 

0769         } 

0770         $result->free(); 

0771         $mysqli->close(); 

0772   

0773     增、刪、改 

0774         $mysqli=new mysqli("localhost","root","root","sunyang");//實例化mysqli 

0775         $query="delete from employee where emp_id=2"; 

0776         $result=$mysqli->query($query); 

0777         if ($result){ 

0778             echo "刪除操作執行成功"; 

0779         }else{ 

0780             echo "刪除操作執行失敗"; 

0781         } 

0782         $mysqli->close(); 

0783   

0784     綁定結果 

0785         $mysqli=new mysqli("localhost","root","root","test");      //實例化mysqli 

0786         $query="select * from users"; 

0787         $result=$mysqli->prepare($query);                 //進行預准備語句查詢 

0788         $result->execute();                           //執行預准備語句 

0789         $result->bind_result($id,$username,$password);         //綁定結果 

0790         while ($result->fetch()) { 

0791             echo $id.'_'; 

0792             echo $username.'_'; 

0793             echo $password; 

0794             echo "<br>"; 

0795         } 

0796         $result->close();                             //關閉預准備語句 

0797         $mysqli->close();                             //關閉連接 

0798   

0799     綁定參數 

0800         $mysqli=new mysqli("localhost","root","root","test");          //實例化mysqli 

0801         $query="insert into users (id, username, password)   values ('',?,?)"; 

0802         $result=$mysqli->prepare($query); 

0803         $result->bind_param("ss",$username,$password);            //綁定參數 I:integer D:double S:string B:blob 

0804         $username='sy0807'; 

0805         $password='employee7'; 

0806         $result->execute();                               //執行預准備語句 

0807         $result->close(); 

0808         $mysqli->close(); 

0809   

0810     綁定參數、綁定結果 

0811         $mysqli=new mysqli("localhost","root","root","test");      //實例化mysqli 

0812         $query="select * from users where id < ?"; 

0813         $result=$mysqli->prepare($query); 

0814         $result->bind_param("i",$id);                 //綁定參數 

0815         $id=10; 

0816         $result->execute(); 

0817         $result->bind_result($id,$username,$password);         //綁定結果 

0818         while ($result->fetch()) { 

0819             echo $id."_"; 

0820             echo $username."_"; 

0821             echo $password; 

0822             echo "<br>"; 

0823         } 

0824         $result->close(); 

0825         $mysqli->close(); 

0826   

0827     多條查詢語句 

0828         $mysqli=new mysqli("localhost","root","root","test");          //實例化mysqli 

0829         $query = "select id from users ;"; 

0830         $query .= "select id from test "; 

0831         if ($mysqli->multi_query($query)) {                   //執行多個查詢 

0832             do { 

0833                 if ($result = $mysqli->store_result()) { 

0834                     while ($row = $result->fetch_row()) { 

0835                         echo $row[0]; 

0836                         echo "<br>"; 

0837                     } 

0838                     $result->close(); 

0839                 } 

0840                 if ($mysqli->more_results()) { 

0841                     echo ("-----------------<br>");                       //連個查詢之間的分割線 

0842                 } 

0843             } while ($mysqli->next_result()); 

0844         } 

0845         $mysqli->close();//關閉連接 

0846   

0847 pdo 

0848     查詢 

0849         $db = new PDO('mysql:host=localhost;dbname=test', 'root', 'root'); 

0850         $sql="SELECT * FROM users"; 

0851         $result = $db->query($sql); 

0852         foreach ($result as $row) 

0853         { 

0854             var_dump($row); 

0855         } 

0856         $db = null; 

0857     增、刪、改、事務開啟 

0858         try 

0859         { 

0860             $db = new PDO('mysql:host=localhost;dbname=test', 'root', 'root'); 

0861             $db->beginTransaction(); 

0862             $a = $db->exec("insert into users (id, username, password) values ('', 'Joe', 'Bloggs')"); 

0863             if($a == false) 

0864             { 

0865                 throw new Exception("sql1執行失敗"); 

0866             } 

0867             $b = $db->exec("insert into users (id, username, password,kkk) values ('', 'Joe', 'Bloggs')"); 

0868             if($b == false) 

0869             { 

0870                 throw new Exception("sql2執行失敗"); 

0871             } 

0872             $db->commit(); 

0873             $db = null; 

0874         } 

0875         catch (Exception $ex) 

0876         { 

0877             echo $ex; 

0878             $db->rollback(); 

0879         } 

0880   

0881 緩存 

0882     Memcache 

0883         .下載memcached, http://www.danga.com/memcached/ ; 2.解壓,比如放在 D:\memcached-1.2.1 ; 3.DOS下輸入‘D:\memcached-1.2.1\memcached.exe -d install’,進行安裝(注意‘’不要輸入); 4.再次輸入‘D:\memcached-1.2.1\memcached.exe -d start’啟動memcached。   注意:memcached以後會隨機啟動。這樣memcached就已經安裝完畢了。 

0884   

0885         $memcache = new Memcache; 

0886         $memcache->addServer('172.19.5.199',11211); 

0887         $memcache->addServer('172.19.5.13',11211); 

0888         //$memcache->connect('localhost', 11211) or die ("Could not connect"); 

0889         //$version = $memcache->getVersion(); 

0890         //echo "Server's version: ".$version; 

0891         $memcache->set('key3',array(1,2,3)); 

0892         var_dump($memcache->get('key3')); 

0893   

0894     ob 

0895         ob_start() 

0896         $content = ob_get_contents(); 

0897         ob_clean(); 

0898         $cache_file = fopen('f:\1.html', 'w+'); 

0899         fwrite($cache_file, $content); 

0900   

0901         頁面靜態化-------------------------------------- 

0902         ob_start(); 

0903         $static_file = '1.html';//靜態頁面 

0904         $php_file = basename(__FILE__);//當前動態頁面 

0905         if (!file_exists($static_file) || 

0906             ((filemtime($static_file)+10) < time()) || //緩存固定時間 

0907             filemtime($php_file) > filemtime($static_file)) //源文件已修改 

0908         { 

0909             echo '靜態頁面示例'; 

0910             echo 'erer'; 

0911             $c = ob_get_contents(); 

0912             ob_clean(); 

0913             file_put_contents($static_file, $c); 

0914         } 

0915         $s = file_get_contents($static_file); 

0916         echo $s; 

0917         ------------------------------------------------- 

0918         ob_implicit_flush($p)  $p:0:關閉 1:開啟(每次輸出後都自動刷新,而不再需要去調用flush()) 

0919         ob_list_handlers 列出所有使用的輸出句柄 

0920         output_add_rewrite_var 

0921             output_add_rewrite_var('var', 'value'); 

0922             echo '<a href="file.php">link</a>'; 

0923             輸出:<a href="file.php?var=value">link</a> 

0924         output_reset_rewrite_vars 

0925             output_add_rewrite_var('var', 'value'); 

0926             echo '<a href="file.php">link</a>';//輸出:<a href="file.php?var=value">link</a> 

0927             ob_flush(); 

0928             output_reset_rewrite_vars(); 

0929             echo '<a href="file.php">link</a>';//輸出:<a href="file.php">link</a> 

0930   

0931 偽靜態 

0932     首先: 

0933     必須要空間支持 Rewrite 以及對站點目錄中有 .htaccess 的文件解析,才有效. 

0934     如何讓空間支持Rewrite 和 .htaccess 的文件解析呢 往下看 

0935     第一步:要找到apache安裝目錄下的httpd.cof文件,在裡面找到 

0936     <Directory /> 

0937         Options FollowSymLinks 

0938         AllowOverride none 

0939     </Directory> 

0940     把none改all, 

0941     第二步:找到以下內容: 

0942     #LoadModule rewrite_module modules/mod_rewrite.so 

0943     改為 

0944     LoadModule rewrite_module modules/mod_rewrite.so 

0945     第三步:保存重啟apache。 

0946     ok。 

0947     其次是.htaccess的書寫規則: 

0948   

0949         <IfModule mod_rewrite.c> 

0950             RewriteEngine On 

0951             RewriteBase / 

0952             #打開允許符號鏈接 

0953             Options FollowSymLinks 

0954             RewriteRule smarty/([0-9]+)/([0-9]+) smarty/index.php?id=$1&name=$2

0955         </IfModule> 

0956   

0957     .htaccess加入以下內容 

0958     RewriteEngine On 

0959     RewriteBase / 

0960     RewriteRule ^(.*)list-id([0-9]+)\.html$ $1/company/search.php?sectorid2=$2

0961     RewriteRule ^(.*)cominfo-([a-z0-9]+)\.html$ $1/member/index.php?uid=$2&type=cominfo 

0962     RewriteRule ^(.*)list-([0-9]+)-([0-9]+)\.html$ $1/plus/list.php?typeid=$2&PageNo=$3

0963     RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.lujin\.com$ 

0964     RewriteCond %{HTTP_HOST} !^(www|bbs)\.lujin\.com$ 

0965     RewriteRule ^/?$ /%{HTTP_HOST} 

0966     RewriteRule ^/([a-z0-9\-]+)\.lujin\.com/?$ /member/index.php?uid=$1 [L] 

0967     對上面的一些解釋 

0968     RewriteRule ^(.*)list-id([0-9]+)\.html$ $1/company/search.php?sectorid2=$2

0969     這條是把企業庫的分類進行偽靜態處理 

0970     原先假設訪問地址為http://www.xxx.com/company/search.php?sectorid2=1

0971     現在地址為http://www.xxx.com/list-id1.html

0972   

0973     優點:1、偽靜態處理加速搜索引擎收入 

0974     2、地址映射到根目錄,增加權重,提高排名 

0975   

0976 序列化 

0977     __sleep() 

0978     __wakeup() 

0979     ----------------- 

0980     $a = array("1"=>"a","2"=>"b","3"=>"c","4"=>"d"); 

0981     $b = serialize($a);/*序列化*/

0982     var_dump($b); 

0983     $f = unserialize($b);/*解析*/

0984     var_dump($f); 

0985     --------------------- 

0986     class S 

0987     { 

0988         public $t = 111; 

0989         public function t() 

0990         { 

0991             echo 't function'; 

0992         } 

0993     } 

0994     $s = new S; 

0995     $t = serialize($s); 

0996     $e = unserialize($t); 

0997     echo $e->t(); 

0998     echo $e->t; 

0999     -------------------- 

1000     class S 

1001     { 

1002         public $id; 

1003         public $name; 

1004         public function f() 

1005         { 

1006             echo 'f function'; 

1007         } 

1008         function __sleep() 

1009         { 

1010             $this->id = uniqid(); 

1011             return array('id','name'); 

1012         } 

1013         function __wakeup() 

1014         { 

1015             //$this->id = uniqid(); 

1016         } 

1017     } 

1018     $s = new S(); 

1019     $s->name = 'name'; 

1020     $e = serialize($s); 

1021     $t = unserialize($e); 

1022     echo $t->id.'_',$t->name,' '; 

1023     echo $t->f(); 

1024     ---------------------------- 

1025     class S 

1026     { 

1027         public $t = 111; 

1028         public function t() 

1029         { 

1030             echo 't function'; 

1031         } 

1032     } 

1033     $s = new S; 

1034     $t = serialize($s); 

1035     $cache_file = fopen('f:/1.txt', 'w+'); 

1036     fwrite($cache_file, $t); 

1037     /* 

1038     die; 

1039     $e = unserialize($t); 

1040     echo $e->t(); 

1041     echo $e->t; 

1042     */

1043     $handle = @fopen("f:/1.txt", "r"); 

1044     if ($handle) 

1045     { 

1046         while (!feof($handle)) 

1047         { 

1048             $buffer = fgets($handle, 4096); 

1049             break; 

1050         } 

1051         fclose($handle); 

1052     } 

1053     $e = unserialize($buffer); 

1054     echo $e->t(); 

1055     echo $e->t; 

1056     ----------------------------------------- 

1057   

1058 ThinkPHP2.0 

1059     入口文件配置 

1060         define('STRIP_RUNTIME_SPACE', false);生成的~runtime.php文件是否去空白和注釋 

1061         define('NO_CACHE_RUNTIME', true);不生成核心緩存文件 

1062   

1063     查詢 

1064         按照id排序顯示前6條記錄 

1065         $Form   = M("Form"); 

1066         $list   =   $Form->order('id desc')->limit(6)->select(); 

1067   

1068     取得模板顯示變量的值 

1069         $this->assign('tt', 'vvvvvvvvvvvv'); 

1070         echo $this->get('tt') 

1071   

1072     成功失敗提示頁 

1073         if(false !==$Form->add()) { 

1074             $this->success('數據添加成功!'); 

1075         }else{ 

1076             $this->error('數據寫入錯誤'); 

1077         } 

1078   

1079     自動驗證 

1080         array(驗證字段,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間) 

1081         驗證規則:require 字段必須、email 郵箱、url URL地址、currency 貨幣、number 數字 

1082         Model:: MODEL_INSERT 或者1新增數據時候驗證 

1083         Model:: MODEL_UPDATE 或者2編輯數據時候驗證 

1084         Model:: MODEL_BOTH 或者3 全部情況下驗證(默認) 

1085   

1086         protected $_validate = array( 

1087             array('verify','require','驗證碼必須!'), //默認情況下用正則進行驗證 

1088             array('name','','帳號名稱已經存在!',0,’unique’,1), // 在新增的時候驗證name字段是否唯一 

1089             array('value',array(1,2,3),'值的范圍不正確!',2,’in’), // 當值不為空的時候判斷是否在一個范圍內 

1090             array('repassword','password','確認密碼不正確',0,’confirm’), // 驗證確認密碼是否和密碼一致 

1091             array('password','checkPwd','密碼格式不正確',0,’function’), // 自定義函數驗證密碼格式 

1092         ); 

1093   

1094 apache多域名配置 

1095     NameVirtualHost *:80 

1096     Alias /php/  "f:/php/"

1097     <Directory "f:/php/"> 

1098         Options Indexes 

1099         Order allow,deny 

1100         Allow from all 

1101     </Directory> 

1102     <VirtualHost *:80> 

1103         DocumentRoot F:/php 

1104         ServerPath F:/php 

1105         ServerAlias www.a.com

1106         ServerName www.a.com

1107     </VirtualHost> 

1108   

1109   

1110     <Directory "F:/php2"> 

1111         Options Indexes 

1112         Order allow,deny 

1113         Allow from all 

1114     </Directory> 

1115     <VirtualHost *:80> 

1116         ServerName www.b.com

1117         ServerAlias www.b.com

1118         ServerPath F:/php2 

1119         DocumentRoot F:/php2 

1120     </VirtualHost> 

1121   

1122   

1123   

1124 PHP已經更新到很多個版本,最近用的比較多的要數PHP5。下面我們為大家總結了PHP5常用函數,以便大家將來實際編寫代碼中查看。 

1125   usleep() 函數延遲代碼執行若干微秒。 

1126   unpack() 函數從二進制字符串對數據進行解包。 

1127   uniqid() 函數基於以微秒計的當前時間,生成一個唯一的 ID。 

1128   time_sleep_until() 函數延遲代碼執行直到指定的時間。 

1129   PHP5常用函數之time_nanosleep() 函數延遲代碼執行若干秒和納秒。 

1130   sleep() 函數延遲代碼執行若干秒。 

1131   show_source() 函數對文件進行語法高亮顯示。 

1132   strip_whitespace() 函數返回已刪除 PHP 注釋以及空白字符的源代碼文件。 

1133   pack() 函數把數據裝入一個二進制字符串。 

1134   ignore_user_abort() 函數設置與客戶機斷開是否會終止腳本的執行。 

1135   highlight_string() 函數對字符串進行語法高亮顯示。 

1136   highlight_file() 函數對文件進行語法高亮顯示。 

1137   PHP5常用函數之get_browser() 函數返回用戶浏覽器的性能。 

1138   exit() 函數輸出一條消息,並退出當前腳本。 

1139   eval() 函數把字符串按照 PHP 代碼來計算。 

1140   die() 函數輸出一條消息,並退出當前腳本。 

1141   defined() 函數檢查某常量是否存在。 

1142   define() 函數定義一個常量。 

1143   constant() 函數返回常量的值。 

1144   PHP5常用函數之connection_status() 函數返回當前的連接狀態。 

1145   connection_aborted() 函數檢查是否斷開客戶機。 

1146   zip_read() 函數讀取打開的 zip 檔案中的下一個文件。 

1147   zip_open() 函數打開 ZIP 文件以供讀取。 

1148   zip_entry_read() 函數從打開的 zip 檔案項目中獲取內容。 

1149   zip_entry_open() 函數打開一個 ZIP 檔案項目以供讀取。 

1150   PHP5常用函數之zip_entry_name() 函數返回 zip 檔案項目的名稱。 

1151   zip_entry_filesize() 函數返回 zip 檔案項目的原始大小(在壓縮之前)。 

1152   zip_entry_compressionmethod() 函數返回 zip 檔案項目的壓縮方法。 

1153   zip_entry_compressedsize() 函數返回 zip 檔案項目的壓縮文件尺寸。 

1154   zip_entry_close() 函數關閉由 zip_entry_open() 函數打開的 zip 檔案文件。 

1155   zip_close() 函數關閉由 zip_open() 函數打開的 zip 檔案文件。 

1156   xml_set_unparsed_entity_decl_handler() 函數規定在遇到無法解析的實體名稱(NDATA)聲明時被調用的函數。 

1157   xml_set_processing_instruction_handler() 函數規定當解析器在 XML 文檔中找到處理指令時所調用的函數。 

1158   xml_set_object() 函數允許在對象中使用 XML 解析器。 

1159   PHP5常用函數之xml_set_notation_decl_handler() 函數規定當解析器在 XML 文檔中找到符號聲明時被調用的函數。 

1160   xml_set_external_entity_ref_handler() 函數規定當解析器在 XML 文檔中找到外部實體時被調用的函數。 

1161   xml_set_element_handler() 函數建立起始和終止元素處理器。 

1162   xml_set_default_handler() 函數為 XML 解析器建立默認的數據處理器。 

1163   xml_set_character_data_handler() 函數建立字符數據處理器。 

1164   xml_parser_set_option() 函數為 XML 解析器進行選項設置。 

1165   xml_parser_get_option() 函數從 XML 解析器獲取選項設置信息。 

1166   xml_parser_free() 函數釋放 XML 解析器。 

1167   PHP5常用函數之xml_parser_create() 函數創建 XML 解析器。 

1168   xml_parser_create_ns() 函數創建帶有命名空間支持的 XML 解析器。 

1169   xml_parse_into_struct() 函數把 XML 數據解析到數組中。 

1170   xml_parse() 函數解析 XML 文檔。 

1171   xml_get_error_code() 函數獲取 XML 解析器錯誤代碼。 

1172   xml_get_current_line_number() 函數獲取 XML 解析器的當前行號。 

1173   xml_get_current_column_number() 函數獲取 XML 解析器的當前列號。 

1174   PHP5常用函數之xml_get_current_byte_index() 函數獲取 XML 解析器的當前字節索引。 

1175   xml_error_string() 函數獲取 XML 解析器的錯誤描述。 

1176   utf8_encode() 函數把 ISO-8859-1 字符串編碼為 UTF-8。 

1177   utf8_decode() 函數把 UTF-8 字符串解碼為 ISO-8859-1。 

1178   wordwrap() 函數按照指定長度對字符串進行折行處理。 

1179   vsprintf() 函數把格式化字符串寫入變量中。 

1180   vprintf() 函數輸出格式化的字符串。 

1181   vfprintf() 函數把格式化的字符串寫到指定的輸出流。 

1182   PHP5常用函數之ucwords() 函數把字符串中每個單詞的首字符轉換為大寫。 

1183   ucfirst() 函數把字符串中的首字符轉換為大寫。 

1184   trim() 函數從字符串的兩端刪除空白字符和其他預定義字符。 

1185   substr_replace() 函數把字符串的一部分替換為另一個字符串。 

1186   substr_count() 函數計算子串在字符串中出現的次數。 

1187   substr_compare() 函數從指定的開始長度比較兩個字符串。 

1188   substr() 函數返回字符串的一部分。 

1189   strtr() 函數轉換字符串中特定的字符。 

1190   strtoupper() 函數把字符串轉換為大寫。 

1191   strtolower() 函數把字符串轉換為小寫。 

1192   PHP5常用函數之strtok() 函數把字符串分割為更小的字符串。 

1193   strstr() 函數搜索一個字符串在另一個字符串中的第一次出現。 

1194   strspn() 函數返回在字符串中包含的特定字符的數目。 

1195   strrpos() 函數查找字符串在另一個字符串中最後一次出現的位置。 

1196   strripos() 函數查找字符串在另一個字符串中最後一次出現的位置。 

1197   strrev() 函數反轉字符串。 

1198   strrchr() 函數查找字符串在另一個字符串中最後一次出現的位置,並返回從該位置到字符串結尾的所有字符。 

1199   strpos() 函數返回字符串在另一個字符串中第一次出現的位置。 

1200   PHP5常用函數之strpbrk() 函數在字符串中搜索指定字符中的任意一個。 

1201   strncmp() 函數比較兩個字符串。 

1202   strncasecmp() 函數比較兩個字符串。 

1203   strnatcmp() 函數使用一種“自然”算法來比較兩個字符串。 

1204   strnatcasecmp() 函數使用一種“自然”算法來比較兩個字符串。 

1205   strlen() 函數返回字符串的長度。 

1206   stristr() 函數查找字符串在另一個字符串中第一次出現的位置。 

1207   stripos() 函數返回字符串在另一個字符串中第一次出現的位置。 

1208   stripslashes() 函數刪除由 addslashes() 函數添加的反斜槓。 

1209   stripcslashes() 函數刪除由 addcslashes() 函數添加的反斜槓。 

1210   strip_tags() 函數剝去 HTML、XML 以及 PHP 的標簽。 

1211   strcspn() 函數返回在找到任何指定的字符之前,在字符串查找的字符數。 

1212   PHP5常用函數之strcoll() 函數比較兩個字符串。 

1213   strcmp() 函數比較兩個字符串。 

1214   strchr() 函數搜索一個字符串在另一個字符串中的第一次出現。 

1215   strcasecmp() 函數比較兩個字符串。 

1216   str_word_count() 函數計算字符串中的單詞數。 

1217   str_split() 函數把字符串分割到數組中。 

1218   str_shuffle() 函數隨機地打亂字符串中的所有字符。 

1219   str_rot13() 函數對字符串執行 ROT13 編碼。 

1220   str_replace() 函數使用一個字符串替換字符串中的另一些字符。 

1221   str_repeat() 函數把字符串重復指定的次數。 

1222   str_pad() 函數把字符串填充為指定的長度。 

1223   str_ireplace() 函數使用一個字符串替換字符串中的另一些字符。 

1224   PHP5常用函數之sscanf() 函數根據指定的格式解析來自一個字符串的輸入。 

1225   sprintf() 函數把格式化的字符串寫寫入一個變量中。 

1226   soundex() 函數計算字符串的 soundex 鍵。 

1227   similar_text() 函數計算兩個字符串的匹配字符的數目。 

1228   sha1_file() 函數計算文件的 SHA-1 散列。 

1229   sha1() 函數計算字符串的 SHA-1 散列。 

1230   setlocale() 函數設置地區信息(地域信息)。 

1231   PHP5常用函數之rtrim() P rtrim() 函數
 

摘自 PPP

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved