Time of Update: 2017-01-19
本文執行個體講述了PHP自動重新命名檔案實現方法。分享給大家供大家參考。具體方法分析如下:PHP重新命名檔案名稱我們在實際開發過程中經常會使用到,比如使用者上傳檔案或是一些快取檔案自動產生的功能我們都需要使用到自動重新命名功能。但一般我們在製作上傳檔案時命名方式都是使用取系統目前時間加上隨時數的方式在進行,這種方法固然可行但有時候並不能滿足客戶要需求。有些客戶就要求我們的檔案名稱命名方式要像windows系統一樣自動流水編號,比如上傳一個名字為“建立文字文件”當再有其它人上傳一個檔案名稱為“建立
Time of Update: 2017-01-19
本文執行個體講述了PHP實現模仿socket請求返回頁面的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:<?php $url = "www.XXXX.com"; //自己做替換 $parse = parse_url($url); //對URL進行解析,返回起組成部分。 $host = $parse['host']; $path = $parse['path']; $port =
Time of Update: 2017-01-19
JSON和XML沒什麼太大區別,不過JSON有一個更大範圍的應用,那就是,跨域的資料調用。由於安全性問題,AJAX不支援跨域調用,這樣要調用不同網域名稱下的資料,很麻煩。下面這個例子,足以展示php用json如何進跨域調用了。index.html複製代碼 代碼如下:<script type="text/javascript"> function getProfile(str) { var arr = str;
Time of Update: 2017-01-19
序列化是將變數轉換為可儲存或傳輸的字串的過程;還原序列化就是在適當的時候把這個字串再轉化成原來的變數使用。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料,使程式更具維護性。1. serialize和unserialize函數這兩個是序列化和還原序列化PHP中資料的常用函數。複製代碼 代碼如下:<?php$a = array('a'=> 'Apple' ,'b' => 'banana', 'c' => 'Coconut');//序列化數組$s = serialize($a);
Time of Update: 2017-01-19
很多時候我們需要對資料進行加密解密,比如有些資料需要儲存到cookie中,但又不能被使用者輕易得到這些資料,這時我們就需要加密這些資料儲存到cookie中,等我們需要使用它們的時候再解密。加密的過程如下:複製代碼 代碼如下:// 加密資料並寫到cookie裡$cookie_data = $this -> encrypt("nowamagic", $data);$cookie = array( 'name' =>
Time of Update: 2017-01-19
在用PHP記錄日誌,或者是 Ajax 請求出錯想要 debug 的時候。我們一般都會將資訊寫入到一個指定的檔案當中。然後根據相應的資訊來處理問題。比如筆者最喜歡在用 Ajax 取不到資料的時候,在PHP指令碼裡面加上下面一段代碼複製代碼 代碼如下:$fp = fopen('./a.txt', 'a+b'); fwrite($fp, $content); fclose($fp); 但是,這裡有一個問題。那就是 $content
Time of Update: 2017-01-19
PHP是一門弱類型的語言。這是它的優勢和特點,但是有的時候你又不得不對類型進行相應的轉換。這個時候問題就來了。因為很多情況下,你會發現轉換類型之後得到的資料和預期的值相差老大一截。這裡我以強制轉換為整形作為例子。看下面的代碼,可以說你絕對不可能說出正確的答案。echo (int) 123.999999999999999; echo (int) -1.999999999999999;echo (int) -1.9999999999999999;
Time of Update: 2017-01-19
縮排與空白字元(Indenting and Whitespace)使用 2 個空格而不使用 tab 鍵進行代碼縮排(notepad++, Eclipse 等編輯器均支援此項配置);行尾不應該有空白字元應使用 \n (Unix分行符號),而不是 \r\n (Windows 分行符號)所有檔案均應以一個空行結尾運算子(Operators)所有二元運算子(二個值之間的運算子),如 +, -, =, !=, ==, > 等等,在運算子兩端均需留有一個空格,如應該使用 $foo = $bar
Time of Update: 2017-01-19
本文執行個體講述了在linux中利用HTML2FPDF與wkhtmltoimage把網頁html直接產生pdf格式的檔案方法,分享給大家供大家參考。具體實現方法如下:找到一款在FPDF和HTML2FPDF源碼基礎上開發的一套開來源程式,作者很給力。基本解決了中文(以及日語、韓語及東南亞和全球語言)亂碼的問題,在Windows/Linux開發環境下測試可用,不需要安裝別的組件支援,是沒有VPS和獨立伺服器的網站開發人員的福音。不多說,源碼名稱是MPDF,官方地址是:http://www.mpdf1
Time of Update: 2017-01-19
問題:2個函數都是針對字串轉義使其適合做檔案名稱。該用哪個?哪個更標準?結論:rawurlencode遵守是94年國際標準備忘錄RFC 1738,urlencode實現的是傳統做法,和上者的主要區別是對空格的轉義是'+'而不是'%20'javascript的encodeURL也是94年標準,而javascript的escape是另一種用"%xxx"標記unicode編碼的方法。推薦在PHP中使用用rawurlencode。棄用urlencode範例source: 超級無敵的人sadha
Time of Update: 2017-01-19
本文執行個體講述了php中常見的sql攻擊Regex。分享給大家供大家參考。具體分析如下:我們都已經知道,在MYSQL 5+中 information_schema庫中儲存了所有的 庫名,表明以及欄位名資訊。故攻擊方式如下:1. 判斷第一個表名的第一個字元是否是a-z中的字元,其中blind_sqli是假設已知的庫名。註:Regex中 ^[a-z] 表示字串中開始字元是在 a-z範圍內複製代碼 代碼如下:index.php?id=1 and 1=(SELECT 1 FROM
Time of Update: 2017-01-19
首先講一下需求:資料庫中有4個欄位分別是id,volume,edition,name. 要求對查詢結果按照volume+edition從大到小排序。下面將一下array_multisort函數array_multisort() 可以用來一次對多個數組進行排序,或者根據某一維或多維對多維陣列進行排序。關聯(string)鍵名保持不變,但數字鍵名會被重新索引。排序次序標誌:SORT_ASC – 按照上升順序排序SORT_DESC – 按照下降順序排序排序類型標誌:SORT_REGULAR –
Time of Update: 2017-01-19
一、引用返回引用返回用在當想用函數找到引用應該被綁定在哪一個變數上面時。不要用返回引用來增加效能,引擎足夠聰明來自己進行最佳化。僅在有合理的技術原因時才返回引用!要返回引用,使用此文法:複製代碼 代碼如下:<?phpclass foo { public $value = 42; public function &getValue() {
Time of Update: 2017-01-19
調試的定義:通過一定方法,在程式中找到並減少缺陷的數量,從而使其能正常工作。這裡說一些如何調試PHP程式的經驗。一、PHP內建的調試功能1、內建的報錯功能兩個名詞:開發環境是開發人員在進行開發和調試的環境,生產環境是最終客戶在用的線上環境;開發環境和生產環境要分開設定報錯功能。(1)開發環境開發環境需要開啟報錯,以下是php.ini的配置項及其說明:複製代碼 代碼如下:; This directive sets the error reporting level.; Development
Time of Update: 2017-01-19
本文執行個體講述了php實現singleton()單例模式的方法。分享給大家供大家參考。具體實現方法如下:common.php檔案如下:複製代碼 代碼如下:<?php class CC { private static $ins; public static function singleton() {
Time of Update: 2017-01-19
本文執行個體講述了php使用session二維數組的用法。分享給大家供大家參考。具體如下:最普通的用法:一個變數名複製代碼 代碼如下:$_SESSION['user'] = 0;echo $_SESSION['user'];使用數組:複製代碼 代碼如下:$_SESSION['user']['a'] = 1;$_SESSION['user']['b'] = 2;echo $_SESSION['user']['a'];echo
Time of Update: 2017-01-19
本文執行個體講述了php實現webservice的方法。分享給大家供大家參考。具體實現方法如下:首先大家要簡單瞭解何謂webservice,接下來就做兩個非常簡單的例子,webservice還是逃不開server端與client端。這裡的測試環境為:apache2.2.11 php5.2.10做這個測試之前,要確認你的php設定檔中已經將soap擴充開啟,即複製代碼 代碼如下:extension=php_soap.dll;OK 現在我們來體驗webserviceserver端
Time of Update: 2017-01-19
本文執行個體講述了PHP實現UTF-8檔案BOM自動檢測與移除的方法。分享給大家供大家參考。具體實現方法如下:BOM資訊是檔案開頭的一串隱藏的字元,用於讓某些編輯器識別這是個UTF-8編碼的檔案。但PHP在讀取檔案時會把這些字元讀出,從而形成了檔案 開頭含有一些無法識別的字元的問題。比如用UTF-8格式儲存的產生圖片的PHP檔案,因為檔案頭隱藏的BOM資訊也被下發,導致產生的 圖片資料不對,瀏覽器無法識別。要檢測一個UTF-8檔案是否含有BOM資訊,就是檢測檔案開頭的字三個符,是否為0xEF,
Time of Update: 2017-01-19
本文詳細講述了PHP動態編譯出現Cannot find autoconf的解決方案。分享給大家供大家參考。具體方法如下:在安裝完PHP後,想動態編譯PHP的memcache擴充庫複製代碼 代碼如下:cd memcache-2.2.5//usr/local/webserver/php/bin/phpize./configure --with-php-config=/usr/local/webserver/php/bin/php-config但是執行/usr/local/webserver/php/
Time of Update: 2017-01-19
本文執行個體講述了PHP讀取CURL類比登入時產生Cookie檔案的方法。分享給大家供大家參考。具體實現方法如下:在使用PHP中的CURL類比登入時會儲存一個Cookie檔案,例如下面的代碼複製代碼 代碼如下:$login_url = 'XXX'; $post_fields['email'] = 'XXXX'; $post_fields['password'] = 'XXXX'; $post_fields['origURL'] = 'XXX';&