以圖明志

PHP服務器腳本

一次對HTTPS頁面抓取的報錯發現過程

定位錯誤的思路
今天發現系統后臺的某個抓取頁面突然失效了,Google了一下,大概意思就是,在主線程里使用同步的ajax請求對用戶體驗有影響,所以不讓用了。先是把async: false注釋掉,發現抓取依然是不行。照理這個是警告,不會阻止程序的運行才對的。于是加上$.ajax的error選項,發現jqXHR.status輸出 200,就是網絡是通的。而jqXHR.responseText返回了一處PHP報錯,定位到錯誤處,發現$array file_get_contents($url); 報錯了。

PHP服務器腳本

Codeigniter的一些優秀實踐

使用規范總結
最近準備接手改進一個別人用Codeigniter寫的項目,雖然之前也有用過CI,但是是完全按著自己的意思寫的,沒按CI的一些套路。用在公眾的項目,最好還是按框架規范來,所以還是總結一下,免得以后別人再接手的時候貽笑大方。首先是 MVC,一條實踐準則是把更少的東西放進 Controller ,記住 DRY 準則:不要重復造輪子。當在超過一個地方編寫相同的代碼時,應該根據它的類型來嘗試編寫一個 library, helper,或 model。

PHP服務器腳本

PHP轉義Json里的特殊字符的函數

常用方法
在給一個 App 做 API,從服務器端的 MySQL 取出數據,然后生成 JSON。數據中有個字段叫 content,里面保存了文章內容,含有大量 HTML 標簽,這個字段在轉 json 的時候需要轉義,因為有大量的特殊字符會破壞 json 的結構。如果 PHP 版本 > 5.2,json_encode 自帶轉義。如果是舊版本的 PHP 則可以用下面的函數。

PHP服務器腳本

了解PHP中Stream(流)的概念與用法

強大好用的流
Stream是PHP開發里最容易被忽視的函數系列(SPL系列,Stream系列,pack函數,封裝協議)之一,但其是個很有用也很重要的函數。Stream可以翻譯為“流”,在Java里,流是一個很重要的概念。流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一條不間斷的字節流,用來實現程序或進程間的通信,或讀寫外圍設備、外部文件等。

PHP服務器腳本

PHP CodeBase: 判斷用戶是否手機訪問

分享兩個小函數
隨著移動設備的普及,網站也會迎來越來越多移動設備的訪問。用適應PC的頁面,很多時候對手機用戶不友好,那么有些時候,我們需要判斷用戶是否用手機訪問,如果是手機的話,就跳轉到指定的手機友好頁面。這里就介紹一下,如何判斷用戶是否用手機訪問。

PHP服務器腳本

PHP CodeBase: 生成N個不重復的隨機數

隨機數的生成函數
有25幅作品拿去投票,一次投票需要選16幅,單個作品一次投票只能選擇一次。前面有個程序員捅了漏子,忘了把投票入庫,有200個用戶產生的投票序列為空。那么你會如何填補這個漏子?當然向上級反映情況。但是我們這里討論的是技術,就是需要生成1-25之間的16個不重復的隨機數,去填補。

PHP服務器腳本

PHP為什么會被認為是草根語言?

擺脫對MySQL的依賴
從PHP誕生之日起,PHP就開始在Web應用方面為廣大的程序員服務。同時,作為針對Web開發量身定制的腳本語言,PHP一直秉承簡單、開源的思想,這也使得PHP得以快速的發展,并且大力地推動Web2.0的出現與發展。但是,長期以來,PHPer(PHP Programmers)被認為是處于草根階層的程序員,被認為是技術含量少,層次低的程序員。這點在國內尤其突出。

PHP服務器腳本

PHP調試利器XDebug的安裝與使用

XDebug的簡單介紹
在我們平時的php開發中,一個大的項目經過長時間的積累以后你會發現性能越來越慢,而性能到底消耗在了什么地方,常常是一個令人頭疼的問題,function a()調用了多少次,function b()又消耗了多少時間,我們到底怎么查找是哪個蛀蟲拉慢了我們的程序運行速度呢?在這里給大家介紹一款工具xdebug,相信很多人已經聽說過了,希望借助這個工具我們可以起到簡單分析php程序性能瓶頸的問題。

PHP服務器腳本

CodeIgniter自帶的數據庫類使用介紹

筆記一下,方便查閱
在 CodeIgniter 中,使用數據庫是非常頻繁的事情。你可以使用框架自帶的數據庫類,就能便捷地進行數據庫操作。依據你的數據庫配置載入并初始化數據庫類:$this->load->database(); 被載入之后你可以在任何地方使用它。CodeIgniter 有一個配置文件讓你存放數據庫連接值(username:用戶名,password:密碼,database name:數據庫名,等等..)

PHP服務器腳本

PHP ORM框架與簡單代碼實現

讓OOP與關系數據庫更融洽
對象關系映射(Object Relational Mapping,簡稱ORM)是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。 簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據,將程序中的對象自動持久化到關系數據庫中。本質上就是將數據從一種形式轉換到另外一種形式。

PHP服務器腳本

PHP Predefined Interfaces 預定義接口

6個迭代器接口介紹
SPL提供了6個迭代器接口:Traversable,遍歷接口(檢測一個類是否可以使用 foreach 進行遍歷的接口)。Iterator,迭代器接口(可在內部迭代自己的外部迭代器或類的接口)。IteratorAggregate,聚合式迭代器接口(創建外部迭代器的接口)。

PHP服務器腳本

PHP數據結構預熱:PHP的迭代器

迭代器是很重要的設計模式
迭代器有時又稱光標(cursor)是程式設計的軟件設計模式,可在容器物件(container,例如list或vector)上遍訪的接口,設計人員無需關心容器物件的內容。PHP5開始支持了接口, 并且內置了Iterator接口, 所以如果你定義了一個類,并實現了Iterator接口,那么你的這個類對象就是ZEND_ITER_OBJECT,否則就是ZEND_ITER_PLAIN_OBJECT.

PHP服務器腳本

PHP使用SOAP調用.net的WebService問題

處理WebService asmx的經驗
項目的需求,需要和一個.net系統進行數據交換,合作方提供了一個WebService接口。這個與一般的PHP POST或GET傳值再查庫拿數據的思路有點不一樣,需要用到SOAP模塊,處理方法也很簡單,就是有一些需要注意的事情。首先確認你的PHP.ini開啟了.SOAP,就是 extension=php_soap.dll 這前面的分號去咯。

PHP服務器腳本

PHP SPL,被遺落的寶石

PHP5內置的標準庫
SPL,PHP 標準庫(Standard PHP Library) ,此從 PHP 5.0 起內置的組件和接口,并且從 PHP5.3 已逐漸的成熟。SPL 其實在所有的 PHP5 開發環境中被內置,同時無需任何設置。似乎眾多的 PHP 開發人員基本沒有使用它,甚至聞所未聞。究其原因,可以追述到它那陽春白雪般的說明文檔,使你忽略了「它的存在」。

PHP服務器腳本

用PHP迭代器來實現一個斐波納契數列

關鍵是重寫next()方法
斐波納契數列通常做法是用遞歸實現,當然還有其它的方法。這里現學現賣,用PHP的迭代器來實現一個斐波納契數列,幾乎沒有什么難度,只是把類里的next()方法重寫了一次。注釋已經寫到代碼中,也是相當好理解的。

PHP服務器腳本

看看PHP迭代器的內部執行過程

實現一個自定義的迭代器
下面我們來了解如何實現一個自定義的迭代器,然后再開始慢慢理解迭代器的內部工作原理。一般的迭代器內部需要下面的方法:Return the current element 返回當前元素,Return the key of the current element 返回當前元素的鍵……如果不是很清楚迭代器的內容工作流程,可以查看下面的迭代器對數組的遍歷過程。
1 / 34 首頁 < Prev 1 2 3 4 5 Next > 尾頁 頁碼:
燃烧吧足球登陆