Time of Update: 2017-01-19
PHP預定了兩個異常類:Exception和ErrorException複製代碼 代碼如下:Exception { /* 屬性 */ protected string $message ; //異常訊息內容 protected int $code ; //異常代碼號 protected string $file ;
Time of Update: 2017-01-19
PHP的輸出緩衝是可以嵌套的。用ob_get_level()就可以輸出嵌套層級。測試發現在cli和瀏覽器下輸出結果不一樣(PHP5.4)。手冊說明如下:ob_get_level() will always return 0 inside a destructor. This happens because the garbage collection for output buffers has already done before the destructor is
Time of Update: 2017-01-19
PHP預設的會話處理器是session.save_handler =
Time of Update: 2017-01-19
PHP Streams是內建核心操作,可能一般的開發人員很少用,它用於統一檔案、網路、資料壓縮等類檔案操作方式,並為這些類檔案操作提供一組通用的函數介面。一個stream就是一個具有流式行為的資來源物件,每個stream對象都有一個封裝類。Stream 可以通過<scheme>://<target>方式來引用。其中<scheme>是封裝類的名字,<target>中的內容是由封裝類的文法指定,不同的封裝類的文法會有所不同。來看看PHP
Time of Update: 2017-01-19
stream_context_create()函數是用來 建立開啟檔案的上下檔案選項 ,用於fopen(),file_get_contents()等過程的逾時設定、Proxy 伺服器、請求方式、頭資訊設定的特殊過程。比如說,上篇php教程中gd庫實現下載網頁所有圖片中,第10行:利用了stream_context_create()設定Proxy 伺服器:複製代碼 代碼如下://設定Proxy 伺服器$opts = array('http'=>array('request_fulluri'=
Time of Update: 2017-01-19
在前期的php教程就講了php gd庫可以實現遠程圖片的下載,但是那隻是下載了一張圖片,原理是一樣的,要想下載一個網頁的所有圖片只要使用Regex進行判斷,找出所有的圖片url就可以進行迴圈下載了,我特地參照網路資源編寫了gd庫圖片下載類!php代碼如下:<?phpheader("Content-type:text/html ; charset=utf-8");if (!empty($_POST['submit'])){ $url = $_POST['url'];
Time of Update: 2017-01-19
因為今天想寫個遠程下載圖片的類,提前熱身寫了個php gd庫實現遠程圖片下載功能,當然curl實現更好,php gd庫實現遠程圖片下載功能主要使用gd庫的兩個函數ImageCreateFromXXX()用於產生圖片函數和ImageXXX函數,XXX表示不同圖片的副檔名,所以你要想辦法擷取遠程圖片的副檔名了,附上php代碼如下:<?phpheader("Content-type:text/html ; charset=utf-8"); if
Time of Update: 2017-01-19
SplFixedArray主要是處理數組相關的主要功能,與普通php array不同的是,它是固定長度的,且以數字為鍵名的數組,優勢就是比普通的數組處理更快。看看我原生Benchmark測試:ini_set('memory_limit','12800M'); for($size = 10000; $size < 10000000; $size *= 4) { echo PHP_EOL . "Testing size: $size" . PHP_EOL; for($s =
Time of Update: 2017-01-19
PHP5
Time of Update: 2017-01-19
PHP5添加了一項新的功能:Reflection。這個功能使得程式員可以reverse-engineer class, interface,function,method and extension。通過PHP代碼,就可以得到某object的所有資訊,並且可以和它互動。假設有一個類Person:複製代碼 代碼如下:class Person { /** * For the sake of demonstration, we"
Time of Update: 2017-01-19
整理了一下PHP中讀取檔案的幾個方法,方便以後查閱。1.freadstring fread ( int $handle , int $length )fread() 從 handle 指向的檔案中讀取最多 length 個位元組。該函數在讀取完最多 length 個位元組數,或到達 EOF 的時候,或(對於網路流)當一個包可用時,或(在開啟使用者空間流之後)已讀取了 8192 個位元組時就會停止讀取檔案,視乎先碰到哪種情況。fread() 返回所讀取的字串,如果出錯返回 FALSE。複製代碼
Time of Update: 2017-01-19
錯誤資訊:Fatal error: session_start() [function.session-start]: Failed to initialize storage module: files (path: ) in C:\usr\phpMyAdmin\libraries\session.inc.php on line
Time of Update: 2017-01-19
PHP去年發生了翻天覆地的變化。似乎每個人對於一個好的架構應該是什麼樣子都有自己的想法,但話又說回來,不同的架構適用於不同類型的項目,沒有什麼架構是萬能的。優秀的 PHP 架構可以協助開發人員構建乾淨整潔和結構化的 Web 開發,同時也加快了建立和維護 Web 應用程式的速度。下面介紹本年度最佳的10款 PHP 開發架構Laravel這款可能是現在最受歡迎的 PHP 架構,Laravel 非常強大,而且很高雅,易於學習和使用。非常值得一試!→ 更多資訊/下載FlightFlight 是一個快速,
Time of Update: 2017-01-19
在上篇文章中,我們已經採集新聞資訊頁的列表資料,接下來要做的操作就是從資料庫中讀取所需要採集的URL,進行頁面抓取就行建立一個content表不過需要注意的一點是,不能再採用採集URL這種id遞增的方法去採集,因為資料表中可能出現id斷續,比如id=9,id=11,當採集到id=10的時候,URL是空白的,這樣可能會導致採集到了空欄位。這裡用到的一個技巧是資料庫的查詢語句,在我們採集完第一條資料的時候,判斷資料庫裡是否還有大於此id的id編號,若有,讀取一條,查詢資訊重複上面的工作。具體代碼如下
Time of Update: 2017-01-19
說到採集,無非就是遠程擷取資訊->提取所需內容->分類儲存->讀取->展示也算是簡單"小偷程式"的加強版吧下面是對應核心代碼(別拿去做壞事哦^_^)所要採集的內容是某遊戲網站上的公告,如下圖:可先利用file_get_contents和簡單正則擷取基本頁面資訊整理下基本資料,採集入庫:<?php include_once("conn.php"); if($_GET['id']<=8&&$_GET['id']){
Time of Update: 2017-01-19
今天在我的微博上發出一個問題:我在面試的時候, 經常會問一個問題: “如何設定一個30分鐘到期的Session?”, 大家不要覺得看似簡單, 這裡麵包含的知識挺多, 特別適合考察基本功是否紮實, 誰來回答試試? 呵呵為什麼問這個問題呢? 1.我在stackoverflow上看到了有人討論這個問題2.想起來我經常問這個問題, 所以~~在這裡, 我來解答下這個題目.第一種回答那麼, 最常見的一種回答是: 設定Session的到期時間,
Time of Update: 2017-01-19
如果在ubuntu/Debian下, 採用apt安裝的PHP, 那麼在使用Session的時候, 就可能會有小機率遇到這個提示.複製代碼 代碼如下:PHP Notice: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /home/laruence/www/htdocs/index.php on line
Time of Update: 2017-01-19
相信許多人對php手冊中語焉不詳的curl_multi一族的函數頭疼不已,它們文檔少,給的例子 更是簡單的讓你無從借鑒,我也曾經找了許多網頁,都沒見一個完整的應用例子。 curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle
Time of Update: 2017-01-19
這兩天有一客戶定製了一個免登入發布模組,因為在模組中需要涉及到很多圖片下載的問題,考慮到效能問題,所以特別寫了一個CURL_MULTI遠程採集網頁的函數,以方便以後使用,估計以後都不會使用原來的單線程curl函數去foreach了,其效能對比很明顯的。同樣擷取我的部落格的十個不同網頁,curl_multi:4.5246081352234,file_get_contents:33.001797914505,將近8倍的效率,可想而知,如果在附件更多的情況下,效能差異就越明顯了,希望對您有所協助!複製
Time of Update: 2017-01-19
其實我在《把文本中的URL地址轉換為可點選連結的JavaScript、PHP自訂函數》一文中介紹過PHP代碼如何?將URL地址轉化成連結的方法,今天給大家介紹一個更加簡潔的版本,先來看看PHP的原始碼:auolink() API複製代碼 代碼如下:/*** Author: SeeDZ* From: http://code.seebz.net/p/autolink-php/**/function autolink($str, $attributes = array()) {