Time of Update: 2016-07-29
看PHP手冊的時候發現了下面這樣一段代碼: 複製代碼 代碼如下:function Test() { static $count = 0; $count++; echo $count; if ($count Test(); } $count--; } ?> 執行結果如下: 這是一個遞迴的函數,聲明的靜態變數count記錄次數,輸出1~10。 我在看的時候有個疑惑,遞迴調用的時候 static $count = 0;
Time of Update: 2016-07-29
PHP中使用最多的非Array莫屬了,那Array是如何?的?在PHP內部Array通過一個hashtable來實現,其中使用連結法解決hash衝突的問題,這樣最壞情況下,尋找Array元素的複雜度為O(N),最好則為1. 而其計算字串hash值的方法如下,將源碼摘出來以供查備: 複製代碼 代碼如下:static inline ulong zend_inline_hash_func(const char *arKey, uint nKeyLength) { register ulong
Time of Update: 2016-07-29
雖然可以通過設定錯誤顯示方式來隱藏這個提示,但是這樣也有隱患,就是在伺服器的日誌中會記錄這些提示,導致記錄檔異常龐大。 首先,這個不是錯誤,是warning。所以如果伺服器不能改,每個變數使用前應當先定義。網上流行的解決方案有以下幾種: 方法1:伺服器配置修改。修改php.ini設定檔,error_reporting = E_ALL & ~E_NOTICE。 方法2:對變數進行初始化,規範書寫(比較煩瑣,因為有大量的變數)。但還沒有找到好定義方法,望大家指教。
Time of Update: 2016-07-29
php.ini 中預設的最長執行時間是 30 秒,這是由 php.ini 中的 max_execution_time 變數指定,倘若你有一個需要頗多時間才能完成的工作,例如要發送很多電子郵件給大量收件者,或者要進行繁重的資料分析工作,伺服器會在 30 秒後強行中止正在執行的程式,如何解決這個問題呢。 最簡單當然是修改 php.ini 中 max_execution_time 的數值,不過不是所有人都有權修改 php.ini,例如使用網頁寄存的開發人員,伺服器上的 php.ini
Time of Update: 2016-07-29
複製代碼 代碼如下://楊輝三角 for ($i=6;$i >= 0;$i--) { for ($j=$i;$j { if ($j { echo "a"; }else { echo ""; } } } ?> PHP列印楊輝三角自訂 複製代碼 代碼如下: function yanghui($line) { echo ""; for($i=1;$i{ echo ""; for($j=1;$j{ $yh[$i][1]=1; if ($i==$j) $yh[$i][$j]=1; else $yh[$i]
Time of Update: 2016-07-29
複製代碼 代碼如下:$zongzi = "asdfasdf(asdfasdf?asfdadsf)"; echo $zongzi = quotemeta($zongzi); echo ""; $zongzi = stripslashes($zongzi); echo $zongzi; ?> PHP quotemeta() 函數 定義和用法 quotemeta() 函數在字串中某些預定義的字元前添加反斜線。 這些預定義字元是: 句號 (.) 反斜線 (\) 加號 (+) 星號 (*) 問號 (?)
Time of Update: 2016-07-29
字串截取是一個非常常見的編程任務,而往往帶中文的字串截取會經常用到。雖然不難,但是自己寫函數實現又耗費時間,這裡介紹一個比較好用的字串截取函數,能夠勝任基本的需求了。 1. 截取GB2312中文字串 複製代碼 代碼如下://截取中文字串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i if(ord(substr($str, $i, 1)) > 0xa0) {
Time of Update: 2016-07-29
複製代碼 代碼如下:$arr = array(345,4,17,6,52,16,58,69,32,8,234); $n = count($arr); for($i=1;$i//其中的為什麼$n-1是因為數組是從0開始計算的 //接下來是第一次內迴圈 for($j=$n-1;$j>=$i;$j--) { //如果$arr[10]//temp = $arr[9]; if($arr[$j]//$temp 暫時先把小的值放起來 $temp = $arr[$j-1]; //這個時候開始要交換位置了
Time of Update: 2016-07-29
1. preg_replace() $msg = preg_replace("/和中間的部分 $msg = preg_replace("/]+>/", "", $msg); -----是刪除<>和中間的內容 i (PCRE_CASELESS) 如果設定此修正符,模式中的字元將同時匹配大小寫字母。 s (PCRE_DOTALL) 如果設定了此修正符,模式中的圓點元字元(.)匹配所有的字元,包括分行符號。沒有此設定的話,則不包括分行符號。這和 Perl 的 /s 修正符是等效的。排除字元類例如 [^
Time of Update: 2016-07-29
max_user_connections 是 MySQL 使用者串連數的最大值設定,整段語句的意思是:伺服器的 MySQL 的最大串連數參數設定不足。解決方案:修改 MySQL 安裝目錄下 my.ini 或者 my.cnf 檔案內的 max_user_connections 參數的數值,重啟 MySQL 伺服器。
Time of Update: 2016-07-29
複製代碼 代碼如下:/* *列印乘法口絕表 */ echo "九靈九乘法口絕表"; echo ""; for($i=1;$iecho ""; for($j=1;$jecho "".$j."*".$i."=".($j*$i).""; } echo ""; } echo ""; echo ""; echo ""; for($i=1;$iecho ""; for($j=$i;$jecho "".$i."*".$j."=".($j*$i).""; } echo ""; } echo ""; ?>
Time of Update: 2016-07-29
複製代碼 代碼如下:/* * 簡單的函數 */ function fontBold($con){ return "$con"; } $str="簡單的函數測試!"; echo "普通文本:$str"; echo "加粗文本:".fontBold($str).""; /* * 帶選擇性參數的函數 */ function fontColor($con,$color="bule"){ return "$con"; } $str="顏色測試"; echo $str; echo
Time of Update: 2016-07-29
這個方法同樣可以用於判斷是否有該分隔字元號。例如: 複製代碼 代碼如下:if($_MODULE[tg1_tjly]){ $tg1_tjly = explode("|",$_MODULE[tg1_tjly]); if(count($tg1_tjly)>1){ //重點在這裡,統計數組大於1的時候則說明含有1個或以上的間隔符號“|”。 $tg1_tjly_tit = $tg1_tjly[0]; $tg1_tjly_con = $tg1_tjly[1]; }else{ $tg1_tjly_tit =
Time of Update: 2016-07-29
今天寫了一個小程式,很小很小,只不過是能夠建立php與mysql的連結,並且實現簡單的SQL語句。 新手初試,還請各路高手多多指導。 程式原始碼如下: 複製代碼 代碼如下:$conn = mysql_connect("localhost","root","") or die ("wrong!"); $sel=mysql_select_db("mydb",$conn); $sql="INSERT INTO `mydb`.`test` ( `id` , `uid` , `regdate` ,
Time of Update: 2016-07-29
複製代碼 代碼如下://開啟檔案 $fp=fopen('tmp.html', 'r'); //讀取檔案內容 可以用以下兩個函數進行操作 fread,file_get_contents $str=fread($fp, filesize('tmp.html')); //filesize為擷取檔案大小 $c //寫檔案 $news=fopen('news.html', 'w'); fwrite($news, $content); //關閉檔案流 fclose($fp); fclose($news);
Time of Update: 2016-07-29
複製代碼 代碼如下:/*函數array_push():將一個或多個單元壓入數組的末尾(入棧) * 1、文法:int array_push ( array &array, mixed var [, mixed ...] ) * 2、描述:將 array 當成一個棧,並將傳入的變數壓入 array 的末尾。array 的長度將根據入棧變數的數目增加。 * 3、注意事項: * 3.1、該函數返回數組新的元素的總數 *
Time of Update: 2016-07-29
複製代碼 代碼如下:$setting = array( // 黑色機率 0 => 0.99, // 白色機率 1 => 0.01, ); // Requires the GD Library header("Content-type: image/png"); $im = imagecreatetruecolor(256, 256) or die("Cannot Initialize new GD image stream"); $white = imagecolorallocate($im,
Time of Update: 2016-07-29
複製代碼 代碼如下:/* * 簡單的數組定義與訪問 */ echo "簡單的數組定義與訪問"; echo "############################################################"; $address=array(5); $address[0]="福州"; $address[1]="廈門"; $address[2]="漳州"; $address[3]="泉州"; $address[4]="寧德"; $address[5]="南平";
Time of Update: 2016-07-29
複製代碼 代碼如下:/*函數array_pop():將數組最後一個單元彈出(出棧) * 1、文法:mixed array_pop ( array &array ) * 2、描述: 彈出並返回 array 數組的最後一個單元,並將數組 array 的長度減一。如果 array 為空白(或者不是數組)將返回 NULL。 * 3、注意事項: * 3.1、 */ echo "*****************************************************************
Time of Update: 2016-07-29
複製代碼 代碼如下://正則表達 式 // ereg區分大小寫 if(ereg("([A-Z]{3,})", "AAA")){ echo "大寫能匹配!"; }else{ echo "no"; } if(ereg("([A-Z]{3,})", "aaa")){ echo "yes"; }else{ echo "小寫不能匹配!"; } // eregi不區分大小寫 if(eregi("([A-Z]{3,})","Aaaa")){ echo "大小寫都可以匹配!"; } //返回匹配的值