Time of Update: 2016-06-07
phpcurl使用privoxy代理訪問https://www.google.com/search?q=xxxcurl配置平淡無奇,長時間運行發現一個嚴重問題,記憶體泄露!不論用單線程和多線程都無法避免!是curl訪問https網站的時候有bug!記憶體泄露可以通過linux的top命令發現,使用php函數memory_get_usage()不會發現。經過反覆調試找到解決辦法,curl配置添加如下幾項解決問題:複製代碼 代碼如下:[CURLOPT_HTTPPROXYTUNNEL] =
Time of Update: 2016-06-07
有時候經常會用到一些線上手冊,比如國內或國外的,有些是訪問速度慢,有些是作者直接吧網站關閉了,有些是伺服器總是宕機,所以還是全盤複製到自己伺服器比較爽。庫特點:給定一初始串連,初始連結以下的層級所有檔案會拷貝到本地。多次複製可以配置是否覆蓋。可以配置是否下載圖片。所有連結替換為相對連結,所以可以隨便rewrite。絕對不會出現檔案覆蓋等問題。最NB的特點是,沒有比這更NB的庫了。SVN:http://svn.phpdr.net/repos/ares/php/library/trunk/lib/C
Time of Update: 2016-06-07
經常遇到這樣一種情況,計劃任務定時後台執行某個php程式,有時候也需要手動執行,可能多個人都需要執行這個程式,如果任務期間非常長,就很容易造成重複執行,所以就開發了下面的類。作用:在實際代碼運行前檢查與當前相同操作的進程是否正在運行,高並發運行是可靠的,運行中的進程中途異常中斷不會產生任何影響。構造方法傳遞pid檔案目錄的絕對路徑,需要自己保證不同進程對應不同pid檔案。複製代碼 代碼如下:/* *
Time of Update: 2016-06-07
驗證碼(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自動區分電腦和人類的圖靈測試)的縮寫,是一種區分使用者是電腦還是人的公用全Bot。可以防止:惡意破解密碼、刷票、論壇灌水,有效防止某個駭客對某一個特定註冊使用者用特定程式暴力破解方式進行不斷的登陸嘗試,實際上用驗證碼是現在很多網站通行的方式,我們利用比較簡易的方式實現了這個功能。
Time of Update: 2016-06-07
1.在DOS命令視窗輸入 mysql -hlocalhost -uroot -p斷行符號 進入mysql資料庫, 其中-h表示伺服器名,localhost表示本地;-u為資料庫使用者名稱,root是mysql預設使用者名;-p為密碼,如果設定了密碼,可直接在-p後連結輸入, 如:-p123456,使用者沒有設定密碼,顯示Enter password時,直接斷行符號即可。
Time of Update: 2016-06-07
在linux中輸入命令複製代碼 代碼如下:crontab -e然後使用vim的命令編輯開啟的檔案,輸入複製代碼 代碼如下:0 * * * * /usr/bin/php -f /home/userxxx/update.php儲存,退出,好了,現在系統會在每個0點自動執行update.php指令碼,指令碼中可以編寫資料庫執行,自動發郵件等功能。註:直接寫成 0 * * * * php -f /home/userxxx/update.php將不會起作用。 另外cronjob的格式為:MIN HOUR
Time of Update: 2016-06-07
在之前我寫過php返回json資料簡單一實例,剛剛上網,突然發現一篇文章,也是介紹json的,還挺詳細,值得參考。內容如下從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。一、json_encode()複製代碼 代碼如下:$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);echo json_encode($arr);?>輸出複製代碼 代碼如下:{"a":1,"b":2,
Time of Update: 2016-06-07
代碼很簡單,就不多廢話了。複製代碼 代碼如下:$array=array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");//規定要分頁的數組$page= $_GET['page']; $r = $this->page($array,5,$page); print_r($r); exit(); foreach($r["source"] as $s){ echo $
Time of Update: 2016-06-07
本文執行個體講述了cakephp列印sql語句的方法。分享給大家供大家參考。具體實現方法如下:將以下語句複製到你的代碼中,可以列印出在這之前所有的sql語句:$sources = ConnectionManager::sourceList(); if (!isset($logs)): $logs = array(); foreach ($sources as $source): $db =& ConnectionManager::getDataSource($source); if (!$db-
Time of Update: 2016-06-07
PHP是一種用於建立動態WEB頁面的服務端指令碼語言。如同ASP和ColdFusion,使用者可以混合使用PHP和HTML編寫WEB頁面,當訪 問者瀏覽到該頁面時,服務端會首先對頁面中的PHP命令進行處理,然後把處理後的結果連同HTML內容一起傳送到訪問端的瀏覽器。但是與ASP或 ColdFusion不同,PHP是一種原始碼開放程式,擁有很好的跨平台相容性。使用者可以在Windows
Time of Update: 2016-06-07
單例模式主要使用於資料庫的串連, 確保資料庫一個類只有一個執行個體, 並且向整個系統提供這個執行個體。從而避免new操作消耗資源, 同時避免資料庫出現too many connection資訊.要點有三個: 1. 必須只有一個執行個體。 2. 必須自動建立這個執行個體。 3. 必須向整個系統提供這個執行個體。複製代碼 代碼如下: class mysql{ privete static $instance ;//儲存執行個體 //建構函式聲明為private,
Time of Update: 2016-06-07
在之前一篇文章中我介紹了通過定義Response宏的方式來實現動態改變模板檔案路徑以實現主題功能: laravel實現模板主題功能,但後來我發現這種方法有個弊端,在模板中使用@extends必須顯式指定模板路徑,這可能造成混亂,我決定還是改變思想,主題和主題之間應該是完全隔離的,不存在就是不存在,不要自動去另外的主題中尋找替代的模板。而原來定義response宏的方式可以實現,但我決定使用更加規範的方法。laravel的View類裡有一個方法 View::addNamespace
Time of Update: 2016-06-07
今天收到了很多Bloger朋友的E-mail拜年簡訊,嘿嘿,感覺很好玩,可是他們是如何?的這個呢,很簡單的,可是簡單的分為兩步:1)通過SQL查詢擷取E-mail地址2)通過某種方法群發E-mail對於1,幾行PHP代碼可以解決:複製代碼 代碼如下:xmlns="http://www.w3.org/1999/xhtml">WordPress 郵件群發工具 Designed By Kaisir//要串連的資料庫地址$db_server="localhost";//資料庫使用者名稱$db_user_
Time of Update: 2016-06-07
國產架構thinkPHP,是一款MVC架構,這個架構最初類比JAVA的struts架構,使用單一入口檔案類比JAVA的過濾器,使用action來類比STRUTS的控制器ACTION,所以為什麼他的MVC之中,M是model,V是view,而control卻是action的原因。
Time of Update: 2016-06-07
雖然在PHP這樣的web應用開發中,我們不是太強調排序的重要性,因為PHP自身已經帶了例如sort()等這樣強大的排序函數,但是在一些重要的場合,例如某些高並發的場合,我想排序演算法的影響已經不能忽略。所以在此介紹遞迴排序和迭代排序。遞迴法:/*** 遞迴法實現的快速排序*/function quicksort($seq){ $k = $seq[0]; $x = array(); $y = array(); for($i=1; $i迭代法:/***
Time of Update: 2016-06-07
前言ThinkPHP 3.2 基於 ThinkPHP 3.1 的基礎上有許多的變化,我覺得這個版本應該設立為 ThinkPHP 4.0 而不是什麼 3.2。如果你在使用 ThinkPHP 3.1 請勿貿然遷移升級,這可不是簡單的覆蓋下檔案就安然無恙的事情。 1. PHP 的版本ThinkPHP 3.2 要求 PHP 5.3 以上的版本,而 ThinkPHP 3.1 只需要 PHP 5.2 就好了 2. 程式檔案夾的修改ThinkPHP 3.2 使用 Application 作為程式檔案夾,而
Time of Update: 2016-06-07
使用百度的介面擷取美女圖片,並用瀑布流的形式展示到自己的頁面中。github項目地址:https://github.com/CraryPrimitiveMan/pretty最終效果如下:點開百度圖片的美女頻道,http://image.baidu.com/channel?c=%E7%BE%8E%E5%A5%B3#%E7%BE%8E%E5%A5%B3開啟chrome的調試工具或者firefox的firebug工具,將捲軸拖到最下面,可以再network中看到如下請求:其參數如下:通過分析,
Time of Update: 2016-06-07
以文章頁為例,通過chrome抓包,waiting的時間達到147ms,實際上未作緩衝最佳化前,這個頁面大概有4條sql語句,速度也只是152ms左右,差別不大,所以我決定安裝zend opcache加速php。當我在伺服器上安裝了zend opcache後,再測試,waiting已經下降到68ms,效果明顯。so,laravel項目還是有必要安裝此類php加速器的。附安裝教程:zend opcache(ZendOptimizerPlus) 項目目前託管在github,項目地址為: https:
Time of Update: 2016-06-07
ThinkPHP3.2.3版本資料庫驅動採用PDO完全重寫,配置和使用上面也比之前版本更加靈活和強大,我們來瞭解下如何使用。首先,3.2.3的資料庫配置資訊有所調整,完整的資料庫設定包括:複製代碼 代碼如下:/* 資料庫設定 */ 'DB_TYPE' => '', // 資料庫類型 'DB_HOST' => '', // 伺服器位址 'DB_NAME' => '', //
Time of Update: 2016-06-07
昨天按照手冊教程,動手寫一個Auth擴充,按照包獨立性的原則,我不希望將Auth::extend()這種方法寫在 start.php 中,毫無疑問,我選擇了在服務提供器register()方法中註冊擴充驅動。然而,事與願違……發現問題當我在 LoauthServiceProvider 中這樣寫的時候:複製代碼 代碼如下:public function register(){ // \Auth::extend('loauth',function($app){});}報錯複製代碼