Time of Update: 2016-07-13
在PHP的官網上看到的parse_url()函數的替代方案。結果和parse_url()函數差不多,是使用正則實現的。URI 是 Web上可用的每種資源 - HTML文檔、映像、視頻片段、程式等 - 由一個通用資源標誌符(Uniform Resource Identifier, 簡稱"URI")進行定位。對象分組:^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?12 3 4 5
Time of Update: 2016-07-13
記錄一下一個問題的解決,裡面涉及幾個函數的用法,當作複習啦。先說明一下問題。資料表裡面的欄位 content 儲存了一個以逗號分割的字串,最大有20個數,最大數字為40。比如3,24,33,40類似字樣的數字序列。其實就是一個儲存了多項投票結果的欄位啦。現在需要統計每個數位個數,也就是每個投票項有多少人投了,並排序。我的思路是這樣的。1. 首先從資料庫的congtent欄位讀取資料,並把它們合并成一個字串。 fetch_array($result)){//$r[] = explode(",",
Time of Update: 2016-07-13
經常會碰到需要從資料庫中匯出資料到Excel檔案,用一些開源的類庫,比如PHPExcel,確實比較容易實現,但對大量資料的支援很不好,很容易到達PHP記憶體使用量上限。這裡的方法是利用fputcsv寫CSV檔案的方法,直接向瀏覽器輸出Excel檔案。// 輸出Excel檔案頭,可把user.csv換成你要的檔案名稱 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition:
Time of Update: 2016-07-13
serialize()和unserialize()在php手冊上的解釋是: serialize — Generates a storable representation of a value,產生一個可儲存的值的表示。 unserialize — Creates a PHP value from a stored representation,從已儲存的表示中建立 PHP 的值。 serialize() 返回字串,此字串包含了表示 value
Time of Update: 2016-07-13
靜態方法的規則和靜態變數是相同的。使用ststic關鍵字可以將方法標識為靜態方法,通過類的名稱和範圍限定操作符::可以訪問靜態方法。 靜態方法和非靜態方法之間有一個很重要的區別,就是在調用靜態方法時,我們不需要建立類的執行個體。 Program List:用類名作為參數 用類名作為參數可以解決非繼承的靜態問題。 程式運行結果: I'm Apple Program List:重寫基類方法 在衍生類別重寫基類的方法。
Time of Update: 2016-07-13
substr_replace()函數介紹 substr_replace() 函數把字串的一部分替換為另一個字串。 文法:substr_replace(string,replacement,start,length) 參數string,必需。規定要檢查的字串。 參數replacement,必需。規定要插入的字串。 參數start,必需。規定在字串的何處開始替換。正數 - 在第
Time of Update: 2016-07-13
fopen()方法最簡單的方法就是用fopen(),看看檔案能否開啟,能打就檔案當然就存在。fopen() 函數開啟檔案或者 URL。如果開啟失敗,函數會返回 FALSE。文法:fopen(filename,mode,include_path,context)參數描述filename必需。規定要開啟的檔案或 URL。mode必需。規定要求到該檔案/流的訪問類型。可能的值見下表。include_path可選。如果也需要在 include_path 中檢索檔案的話,可以將該參數設為 1 或
Time of Update: 2016-07-13
靜態變數只存在於函數範圍內,也就是說,靜態變數只存活在棧中。一般的函數內變數在函數結束後會釋放,比如局部變數,但是靜態變數卻不會。就是說,下次再調用這個函數的時候,該變數的值會保留下來。 只要在變數前加上關鍵字static,該變數就成為靜態變數了。 ";} // 第一次執行,$nm = 2test(); // 第一次執行,$nm = 4test(); // 第一次執行,$nm = 8test();?> 程式運行結果: 248
Time of Update: 2016-07-13
PHP SESSION原理 我們知道,session是在伺服器端保持使用者會話資料的一種方法,對應的cookie是在用戶端保持使用者資料。HTTP協議是一種無狀態協議,伺服器響應完之後就失去了與瀏覽器的聯絡,最早,Netscape將cookie引入瀏覽器,使得資料可以用戶端跨頁面交換,那麼伺服器是如何記住眾多使用者的會話資料呢?
Time of Update: 2016-07-13
一般來說,緩衝的目的是把資料放在一個地方讓訪問的更快點,毫無疑問,記憶體是最快的,但是,幾百M的資料能往記憶體放麼?這不現實,當然,有的時候臨時放如伺服器緩衝,如ob_start()這個快取頁面面開啟的話在傳送檔案頭之前頁面內容都被緩衝在記憶體中,知道等頁面輸出自動清楚或者等待
Time of Update: 2016-07-13
以下這些tips,是我在實際工作中慢慢形成的,有些可能是不正確的,有些出於個人習慣,所以,千萬不要把以下這些條當成什麼標準,其中可能隱藏著天大的bug,代碼可能正在病態的運行中,SO!請一定仔細的看過後想想,這麼做的好處是什嗎?會產生怎樣的負面影響? 開發習慣和PHP代碼 準確的理解各種概念。現在的新東西層出不窮,望文生義和一知半解對開發工作有害無益; 代碼美觀,適當的空行、縮排,空格,這樣能更容易理解程式碼片段的意思;
Time of Update: 2016-07-13
在 CodeIgniter 中,使用資料庫是非常頻繁的事情。你可以使用架構內建的資料庫類,就能便捷地進行資料庫操作。初始化資料庫類依據你的資料庫配置載入並初始化資料庫類:$this->load->database();被載入之後你可以在任何地方使用它。以對象形式返回查詢結果$query = $this->db->query('SELECT name, title, email FROM my_table');foreach ($query->result() as $row){ echo
Time of Update: 2016-07-13
項目的需求,需要和一個.net系統進行資料交換,合作方提供了一個WebService介面。這個與一般的PHP POST或GET傳值再查庫拿資料的思路有點不一樣,需要用到SOAP模組,處理方法也很簡單,就是有一些需要注意的事情。首先確認你的PHP.ini開啟了.SOAP,就是 extension=php_soap.dll 這前面的分號去咯。代碼很簡單:soap_defencoding = 'utf-8'; $client->decode_utf8 = false; $client->xml_
Time of Update: 2016-07-13
在PHP中使用Regex時,會與其它語言有些差別,這個差別的其中之一是PHP有對正則的修飾符(限定符)的存在。我們在PHPRegex的學習中會碰到修飾符,那麼關於PHPRegex修飾符的理解以及使用我們需要注意什麼呢?那麼我們來具體的看看它的概念以及相關內容。在學習PHPRegex修飾符之前先來理解下貪婪模式,前面在元字元中提到過“?”還有一個重要的作用,即“貪婪模式”,什麼是“貪婪模式”呢?PHPRegex貪婪模式:比如我們要匹配以字母“a”開頭字母“b”結尾的字串,但是需要匹配的字串在“a”
Time of Update: 2016-07-13
PHP開發架構是什嗎?有太多的原因使得PHP成為世界上最受歡迎的指令碼語言——高度靈活、簡單易用——不過寫PHP(或者任何這種語言)代碼時,人們常常陷入單調重複而令人生厭的體力活動的窘境。而這正是PHP開發架構大顯身手的地方。通過提供一個開發Web程式的基本架構,PHP開發架構把PHP
Time of Update: 2016-07-13
.htaccess檔案提供了針對每個目錄改變更配置置的方法。 工作原理和使用方法 .htaccess檔案(或者"分布式設定檔")提供了針對每個目錄改變更配置置的方法,即在一個特定的目錄中放置一個包含指令的檔案,其中的指令作用於此目錄及其所有子目錄。 如果需要使用.htaccess以外的其他檔案名稱,可以用AccessFileName指令來改變。例如,需要使用.config ,則可以在伺服器設定檔中按以下方法配置:AccessFileName .config
Time of Update: 2016-07-13
我們寫程式,難免會有問題(是經常會遇到問題 ),而PHP遇到錯誤時,就會給出出錯指令碼的位置、行數和原因。有很多人說,這並沒有什麼大不了。確實,在偵錯工具階段,這確實是沒啥的,而且我認為給出錯誤路徑是必要的。但泄露了實際路徑的後果是不堪設想的,對於某些入侵者,這個資訊可是非常重要,而事實上現在有很多的伺服器都存在這個問題。有些網管乾脆把PHP設定檔中的display_errors設定為Off來解決(貌似我們就是這樣做的),但本人認為這個方法過於消極。有些時候,我們的確需要PHP返回錯誤的資訊以便
Time of Update: 2016-07-13
在使用 PHP 進行開發的過程中,或早或晚,您會需要建立許多相似的變數,這時候你可以把資料作為元素儲存在數組中。數組中的元素都有自己的 ID,因此可以方便地訪問它們。關聯陣列關聯陣列,它的每個 ID
Time of Update: 2016-07-13
1. 如果要快速開發,可以考慮使用MVC架構使用像 CodeIgniter 這樣的MVC架構了在快速開發中很有效,MVC架構並不強迫你寫物件導向的代碼,它們僅將php代碼與html分離。明確區分php和html代碼,在團隊協作中有好處,設計師和程式員可以同時工作。物件導向設計的函數能讓你更容易維護。內建函數完成了很多工作,你不需要重複編寫。開發大的應用是必須的。很多建議、技巧和hack已被架構實現了。2. 將 error_reporting 設為 0 未必萬事大吉錯誤報表 E_FATAL
Time of Update: 2016-07-13
不使用CI的時候,我們可以使用 error_reporting(E_ALL); error_reporting(0); 這類的代碼來控制報錯層級。當然也可以在類中使用這些語句,不過CI自己已經有控制報錯層級的機制在裡面了。也許你不會經常開啟index.php,但是修改就在這個檔案裡面:/* *--------------------------------------------------------------- * APPLICATION ENVIRONMENT *------------