Time of Update: 2017-01-19
本文以執行個體講述了PHP檔案寫入方法,以應對多線程寫入,具體代碼如下:function file_write($file_name, $text, $mode='a', $timeout=30){ $handle = fopen($file_name, $mode); while($timeout>0){ if ( flock($handle, LOCK_EX) ) { // 排它性的鎖定 $timeout--; sleep(1); }
Time of Update: 2017-01-19
網上很多人給出瞭解答:修改php設定檔中的session.gc_maxlifetime。如果想瞭解更多session回收機制,繼續閱讀。(本文環境php5.2)概述:每一次php請求,會有1/100的機率(預設值)觸發“session回收”。如果“session回收”發生,那就會檢查/tmp/sess_*的檔案,如果最後的修改時間到現在超過了1440秒(gc_maxlifetime的值),就將其刪除,意味著這些session到期失效。1. session在server端(一般是Apache
Time of Update: 2017-01-19
前端開發工程師都知道javascript有編碼函數escape()和對應的解碼函數unescape(),而php中只有個urlencode和urldecode,這個編碼和解碼函數對encodeURI和encodeURIComponent有效,但是對escape的是無效的。javascript中的escape()函數和unescape()函數使用者字串編碼,類似於PHP中的urlencode()函數,下面是php實現的escape函數代碼:複製代碼 代碼如下:/** * js
Time of Update: 2017-01-19
Web 開發並不是一項輕鬆的任務,有超級多服務端指令碼語言提供給開發人員,但是當前 PHP 因為具有額外的一些強大的功能而越來越流行。PHP 是最強大的服務端指令碼語言之一,同時也是 Web 開發人員和設計者用的最多,最經常使用的語言。PHP 有非常多的工具,其中包括測試和最佳化工具,文檔工具,代碼編輯器,安全工具,同時也支援架構和線上工具。這就是為什麼在那麼短的時間內吸引了那麼的開發人員使用它。工具總是能協助簡化和加速開發的過程。1) PinbaPinba 是個開源的 MySQL
Time of Update: 2017-01-19
今天寫程式的時候,突然發現了很早以前寫的擷取月份天數的函數,經典的switch版,但是獲得上月天數的時候,我只是把月份-1了,估計當時太困了吧,再看到有種毛骨悚然的感覺,本來是想再處理一下的,但是一想肯定還有什麼超方便的方法,於是找到了下面這個版本,做了一點小修改。擷取本月日期:複製代碼 代碼如下:function getMonth($date){ $firstday = date("Y-m-01",strtotime($date));
Time of Update: 2017-01-19
php讀寫二進位檔案可以使用pack和unpack函數。今天要處理一個二進位檔案的問題,所以需要用一下,特意瞭解一下pack的用法,unpack用法與此類似。簡單來說,pack函數就是給一個目標格式,和相應的參數,就可以返回位元據了。下面舉例加以說明,對於四個整數:pack("L4", 0,1,2,3)pack("LLLL", 0,1,2,3)pack("L", 0).pack("L", 1).pack("L", 2).pack("L",
Time of Update: 2017-01-19
先舉個列子:比如你一個函數會返回這幾種情況:1、大於0的數2、小於0的數3、等於0的數(也就是0啦)4、False(失敗時)這時候如果你想捕獲失敗的情況,你就必須用===,而不能用==因為==除了會匹配第4種情況外,還會匹配第3種情況,因為0也是假!三個等號代表比較對象的類型也要一致。兩個等號表示只要值相等就滿足條件。再來補充一些:$a='2';//字元型2$b=2;//數值型2$a==$b,是對的,都是2$a===$b,是不對的,因為$a是字元型$b是數值型,值雖一樣,但類型不一樣。還有就是“
Time of Update: 2017-01-19
PHP語言: 根據中文裁減字串複製代碼 代碼如下:function cutstr($string,$length, $dot = ' ...') { if (strlen($string) <= $length) { return$string; } $pre = chr(1); $end = chr(1); $string = str_replace(array('&'
Time of Update: 2017-01-19
本例是PHP和javascript互動的例子,php中的值賦給js變數中,前提是這個php變數必須有值才行,就算是假分支中。比如php中的$flags在本例中為true,如果js中false語句寫成:$title_1.innerHTML = "<?php echo $title;?>";就會出錯,因為$title在php中被賦值為數組儘管在php的flags=="false";$title是一個字串,情況是$title是數組,而數組在字串中也是不能直接顯示的。複製代碼
Time of Update: 2017-01-19
之前每次遇到分頁,總是得自己寫,覺得挺繁瑣的,所以本著通用的原則,寫了一個分頁的方法,特此記錄。 目前此分頁支援靜態化地址分頁和無連結地址時的ajax分頁(但是js得自己寫): 支援的靜態地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html 其他形式靜態化需根據自己情況進行改寫 支援ajax方式分頁時,$link參數為空白,但提供了pid和optype,其中pid用於擷取該頁碼頁數,optype用於一個頁面存在多個分頁時區分當前觸發動作屬於哪個分頁邏輯
Time of Update: 2017-01-19
有經驗的程式員發現,php判斷字串長度,使用isset()在速度上比strlen()更快,執行效率更高。即:複製代碼 代碼如下:$str = ‘aaaaaa';if(strlen($str) > 6)VSif(!isset($str{6})用例子簡單測試下,情況基本屬實,isset()效率幾乎是strlen()的3倍。樣本:複製代碼 代碼如下:<?php //使用strlen方式 $arr = "123456"; $sTime = microtime(1
Time of Update: 2017-01-19
1.寫在最前面最近想寫一個簡單的關於許可權處理的東西,之前我也瞭解過用位元的位元運算可以出色地完成這個任務。關於位元的位元運算,常見的就是“或、與、非”這三種簡單運算了,當然,我也查看了下PHP手冊,還有“異或、左移、右移”這三個運算。記得上初中時數學老師就開始嘮叨個不停了,在此我也不想對此運算再作額外的說明,直接進入正題。2.如何定義許可權將許可權按照2的N次方來定義值,依次類推。為什麼要這樣子定義呐?這樣子定義保證了每個許可權值(二進位)中只有一個1,而它恰好對應一種許可權。比如:複製代碼
Time of Update: 2017-01-19
1. VC6與VC9的區別:VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。VC9版本是使用Visual Studio 2008編譯器編譯的,如果你的PHP是用IIS來架設的,那你就選擇 VC9版本。VC9版本是針對IIS伺服器的版本,沒有對APACHE的支援,而VC6版本對IIS和apache都提供了支援 2.Ts與nts的區別:Windows版的PHP從版本5.2.1開始有Thread Safe和NoneThread
Time of Update: 2017-01-19
複製代碼 代碼如下: $strsql = "INSERT INTO `xxx` (`aaa`) VALUES ('".$_POST["bbb"]."','".$_POST["ccc"]."',,now())"; $result=@mysql_query($strsql,$my_con); $maxrow=@mysql_affected_rows(); Testecho ($y.mysql_affected_rows()." $errcode ".$strsql); #debug
Time of Update: 2017-01-19
好久沒有寫文章了。一直忙著新的項目。 最近,做驗證碼程式,一直想做一個簡潔大方,自動識別比較困難的。 通過這些時候整理搜集,發現一般做法有以下幾種方案:1、字型變型 (一般通過演算法,進行扭曲,比較有代表性就是:http://code.google.com/p/cool-php-captcha/ 2、字型黏貼 (這裡面以qq驗證碼為代表了,目前網上還是很難找到,破解qq驗證碼的) 3、幹擾線,噪點 (這種識別起來相當容易,很容易被程式自動化識別)對於上面提到,第1,2
Time of Update: 2017-01-19
本文所述的是一個在PHP中以mysqli方式串連資料庫的一個資料庫類執行個體,該資料庫類是從一個PHP的CMS中整理出來的,可實現PHP串連資料庫類,MySQLi版,相容PHP4,對於有針對性需要的朋友可根據此代碼進行最佳化和修改。<?php#==================================================================================================# Filename:
Time of Update: 2017-01-19
今天搞的一個登入頁面,被別的網站用iframe嵌進去後,死活無法登入(只在IE中存在這種情況)。 很明顯,session無法被儲存。但是直接在地址欄開啟那個登入頁面,一切都正常啊。真是奇怪啊。 在網上搜尋了一下。發現這個問題還真有不少人提及到。最後的解決方案是在那個登入頁面裡加上以下代碼: 複製代碼 代碼如下: <span style="font-family:Microsoft YaHei; font-size:14px">header('P3P: CP="ALL ADM DEV
Time of Update: 2017-01-19
goto操作符可以用來跳轉到程式中的某一指定位置。該目標位置可以用目標名稱加上冒號來標記。PHP中的goto有一定限制,只能在同一個檔案和範圍中跳轉,也就是說你無法跳出一個函數或類方法,也無法跳入到另一個函數。你也無法跳入到任何迴圈或者switch 結構中。常見的用法是用來跳出迴圈或者switch,可以代替多層的break。用法很簡單:goto後面帶上目標位置的標誌,在目標位置上用目標名加冒號標記,如下:複製代碼 代碼如下:<?phpgoto a;echo
Time of Update: 2017-01-19
1.下載附件,並安裝,方法看附件中的協助 2.拷貝代碼進合適位置,產生圖片,怎麼處理,自己看著辦嘍 複製代碼 代碼如下: $oldswf = "/uploads/swf/test.swf"; $oldjpg = "/uploads/litpic/test.jpg"; $flash2jpeg = new COM("SunCN.Flash2Jpeg"); if ($flash2jpeg) { $a = $flash2jpeg->Flash2Jpeg($oldswf, 150, 200,
Time of Update: 2017-01-19
\n 軟斷行符號: 在Windows 中表示換行且回到下一行的最開始位置。相當於Mac OS 裡的 \r 的效果。 在Linux、unix 中只表示換行,但不會回到下一行的開始位置。 \r 軟空格: 在Linux、unix 中表示返回到當行的最開始位置。 在Mac OS 中表示換行且返回到下一行的最開始位置,相當於Windows 裡的 \n 的效果。 \t 跳格(移至下一列)。 它們在雙引號或定界符表示的字串中有效,在單引號表示的字串中無效。 \r\n