Time of Update: 2016-07-21
分析過程 這個來自一些項目中,擷取使用者Ip,進行使用者操作行為的記錄,是常見並且經常使用的。 一般朋友,都會看到如下通用擷取IP地址方法。 複製代碼 代碼如下: function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $
Time of Update: 2016-07-21
錯誤:configure: error: libevent >= 1.4.11 could not be found 解決:yum -y install libevent libevent-devel 錯誤:configure: error: Please reinstall the mysql distributio 解決:yum -y install mysql-devel 錯誤:make: *** [sapi/fpm/php-fpm] error 1 解決:用make
Time of Update: 2016-07-21
複製代碼 代碼如下:function _code($_code_length = 4, $_width = 75, $_height = 25){ for($i=0;$i $_nmsg .= dechex(mt_rand(0,15)); } $_SESSION["code"] = $_nmsg; $_img = imagecreatetruecolor($_width, $_height); $_white = imagecolorallocate($
Time of Update: 2016-07-21
這裡介紹兩個php採集能用到的好工具。一個是Snoopy,一個是simple_html_dom。採集還有很多方式(其實本質就2-3種,其他的都是衍生的),php內建了幾個方法也能直接進行採集。但是,出於把懶惰進行到底的精神。我們還是可以通過這兩個工具,讓採集變得更簡單。網上有不少介紹Snoopy的,下面是別人翻譯的Snoopy的SDK//////////////////////////////////////////////////////////////Snoopy是一個php類,用來類比瀏覽
Time of Update: 2016-07-21
如果你的url連結是相對路徑“static/mapi.css”,你想把他批量替換成絕對路徑“http://dev.baidu.com/wiki/static/map/cloud/static/mapi.css”。那麼,你可以這樣做: 寫一個PHP檔案,把需要替換的網址寫進去。 這個代碼的意思就是,把#BASE_URL#替換成 http://api.map.baidu.com/lbsapi/cloud/ 。
Time of Update: 2016-07-21
瞭解MySql必須牢牢記住其體繫結構圖,Mysql是由SQL介面,解析器,最佳化器,緩衝,儲存引擎組成的 1 Connectors指的是不同語言中與SQL的互動2 Management Serveices & Utilities: 系統管理和控制工具3 Connection Pool: 串連池。管理緩衝使用者串連,線程處理等需要緩衝的需求4 SQL Interface: SQL介面。接受使用者的SQL命令,並且返回使用者需要查詢的結果。比如select from就是調用SQL
Time of Update: 2016-07-21
php下載檔案,比如txt檔案。出現的效果就是,彈出瀏覽器內建的下載框,出現另存新檔操作。有時候會出現記憶體溢出和逾時的現象。逾時的話,設定set_time_limit(0);出現記憶體溢出的話,有可能是因為從資料庫中取出的資料量太大導致的。如果是從檔案中讀取的話,出現記憶體溢出的話,就是代碼讀取方式不正確,調用files或者filegetcontens才會如果是fopen的話,就給一個緩衝區,固定大小,讀入然後寫入,不會出現記憶體溢出的情況。如代碼:複製代碼 代碼如下:if
Time of Update: 2016-07-21
在前面的一文中, 我們提到strtotime函數在使用strtotime(”-1 month”)求上一個月的今天時會出一些狀況,因此也引出寫這篇文章,本文包括如下內容:•strtotime函數的一些用法•strtotime函數的實現基本原理•strtotime(”-1 month”)求值失敗的原因strtotime函數的一些用法1、
Time of Update: 2016-07-21
由於現在的瀏覽器已經可以識別txt文檔格式,如果只給txt文檔做一個文字連結的話,點擊後只是開啟一個新視窗顯示txt檔案的內容,並不能實現點擊下載的目的。當然這個問題的解決辦法也可以是將txt檔案改名為瀏覽器不認識的檔案(比如rar),這樣的話,由於瀏覽器不能識別rar類型的檔案,只能讓使用者下載了。還有一種辦法,就是利用代碼通過header設定文檔的格式來實現點擊下載的目的。PHP代碼如下:====================================================
Time of Update: 2016-07-21
首先需要解釋的是什麼是守護進程。守護進程就是在後台一直啟動並執行進程。比如我們啟動的httpd,mysqld等進程都是常駐記憶體內啟動並執行程式。針對需求進行分析:需求:有一個常駐隊列messageQueue(假設在redis記憶體中),這個隊列會有可能有請求不週期性往隊列中增加元素。同時我們要求在隊列中有元素的時候,按照隊列順序將元素pop出來,並進行處理(假設這個處理只是echo ‘test');解決方案:現在假設已經有了兩個函數function oPopMessageQueue(){ …}
Time of Update: 2016-07-21
一日,遇到一個問題,求上一個月的今天。 最開始我們使用 strtotime(”-1 month”) 函數求值,發現有一個問題,月長度不一樣的月份的計算結果有誤。 比如:2011-03-31,得到的結果是2011-03-03。我們先不追究什麼問題,先看如何解決問題。 此時,想起PHP中有一個mktime函數,於是自己寫了如下代碼:複製代碼 代碼如下:echo date("Y-m-d H:i:s", mktime(date("G", $time), date("i", $time),
Time of Update: 2016-07-21
最佳化PHP代碼技巧的小結1. 如果一個方法能被靜態,那就聲明他為靜態,速度可提高 1/4;2. echo 的效率高於 print,因為 echo 沒有傳回值,print 返回一個整型;3. 在迴圈之前設定迴圈的最大次數,而非在在迴圈中;4. 銷毀變數去釋放記憶體,特別是大的數組;5. 避免使用像__get, __set, __autoload 等魔術方法;6. requiere_once()比較耗資源;7. 在 includes 和 requires
Time of Update: 2016-07-21
更多內容請查看zookeeper官網Zookper: 一種分布式應用的協作服務
Time of Update: 2016-07-21
PHP無限分類,Google一下就能找到很多相關資料,思路比較拉風的,也是用得比較多的就是分類表至少有id,pid,name三個欄位,id自增表分類,pid為父分類,name為分類名,這樣就構成了一棵樹,如下,算是我查詢分類表得到的結果集。複製代碼 代碼如下://類比PHP無限分類查詢結果return array( array( 'id'=>1, 'pid'=>0, 'name'=>'首頁' ), array( 'id'=
Time of Update: 2016-07-21
二分法尋找數組是否包含某一元素,相容正反序,代碼實現:複製代碼 代碼如下: $searchValue = (int)$_GET['key']; function search(array $array, $value) { $max = count($array)-1; $min = 0; $isAscSort = $array[$min] while (TRUE) { $sum = $min+$max; $midKey =
Time of Update: 2016-07-21
這幾天看到幾篇關於尾遞迴的文章,之前對尾遞迴沒有多大概念,所以回頭研究了一下尾遞迴。 尾遞迴的概念尾遞迴(Tail Recursion)的概念是遞迴概念的一個子集。對於普通的遞迴,由於必須要記住遞迴的呼叫堆疊,由此產生的耗用是難以估量的。比如下文中php小節第一個例子使用php寫一個階乘函數,就是由於遞迴造成了棧溢出的錯誤。尾遞迴出現的目的就是消除遞迴棧耗損這個缺憾的。從代碼層面看,尾遞迴其實一句話就可以說清楚了:函數的最後一個操作是遞迴調用 比如"菲波納鍥"數列的php的遞迴實現:複製代碼
Time of Update: 2016-07-21
Zend的Config類在Zend_Config_Ini代碼$config = new Zend_Config_Ini("/var/www/html/usvn/config/config.ini", "general");date_default_timezone_set($config->timezone);USVN_ConsoleUtils::setLocale($config->system->locale);===Config.ini檔案內容[general]url.base =
Time of Update: 2016-07-21
安裝完wamp後開啟其下的phpMyAdmin也就是路徑http://localhost/phpmyadmin/出現看裡面的代碼一下明白了解決方案直接貼圖如下:複製代碼 代碼如下: Options Indexes FollowSymLinks MultiViews AllowOverride all Order Deny,Allow Deny from all Allow from 127.0.0.1把它改成Allow from 127.
Time of Update: 2016-07-21
curl可以說是php裡一個非常強大的功能,每個php程式員都應該學習並熟悉curl,使用curl前確保你的php_curl擴充已經開啟。一、curl使用例如:我們採集深圳智聯招聘上PHP招聘的第一頁資訊複製代碼 代碼如下:$url='http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=php&sm=0&p=1';//初始化$ch = curl_init();//設定選項,包括URLcurl_setopt(
Time of Update: 2016-07-21
觀察者模式:定義對象間一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並自動更新。