Time of Update: 2016-07-21
demo.php:複製代碼 代碼如下:/*** 讀取 sql 檔案並寫入資料庫* @version 1.01 demo.php*/class DBManager{ var $dbHost = ''; var $dbUser = ''; var $dbPassword = ''; var $dbSchema = ''; function __construct($host,$user,$password,$schema) {
Time of Update: 2016-07-21
同時使用session和cookie來儲存使用者登入資訊1、資料庫連接配置頁面:connectvars.php複製代碼 代碼如下://資料庫的位置define('DB_HOST', '127.0.0.1');//使用者名稱define('DB_USER', 'root');//口令define('DB_PASSWORD', '19900101');//資料庫名define('DB_NAME','test') ;?>2、登入頁面:logIn.php複製代碼
Time of Update: 2016-07-21
MYSQL的交易處理主要有兩種方法。1、用begin,rollback,commit來實現begin 開始一個事務rollback 交易回復commit 事務確認2、直接用set來改變mysql的自動認可模式MYSQL預設是自動認可的,也就是你提交一個QUERY,它就直接執行!我們可以通過set autocommit=0 禁止自動認可set autocommit=1 開啟自動認可來實現事務的處理。當你用 set autocommit=0
Time of Update: 2016-07-21
很多新手在進行項目過程中,會碰到這樣一種情況,如:論壇扣幣項目中,使用者支付論壇幣的時候如果突然斷網、電腦死機、停電、等其它自然災害時,導致本次交易沒有成功(即使用者的幣已經扣掉了,但是伺服器資料庫中沒有消費記錄等其它情況),這種情況應該怎麼樣進行處理呢?在這個時候,我們可以用Mysql交易回復來進行處理,那代碼怎麼寫呢? 那下面我就來說一說這個mysql交易回復應該怎麼處理。
Time of Update: 2016-07-21
複製代碼 代碼如下:/* * php中如何防止表單的重複提交 */session_start();if (empty($_SESSION['ip'])) {//第一次寫入操作,判斷是否記錄了IP地址,以此知道是否要寫入資料庫 $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次寫入,為後面重新整理或後退的判斷做個鋪墊 //...........//寫入資料庫操作} else {//已經有第一次寫入後的操作,也就不再寫入資料庫
Time of Update: 2016-07-21
多層數組和對象轉化的用途很簡單,便於處理WebService中多層數組和對象的轉化簡單的(array)和(object)只能處理單層的資料,對於多層的數組和對象轉換則無能為力。通過json_decode(json_encode($object)可以將對象一次性轉換為數組,但是object中遇到非utf-8編碼的非ascii字元則會出現問題,比如gbk的中文,何況json_encode和decode的效能也值得疑慮。下面上代碼:複製代碼 代碼如下: function objectToArray($
Time of Update: 2016-07-21
包括,計算字串長度、分割字串、尋找字串等等各個方面。1.AddSlashes: 字串加入斜線。 2.bin2hex: 二進位轉成十六進位。 3.Chop: 去除連續空白。 4.Chr: 返回序數值的字元。 5.chunk_split: 將字串分成小段。 6.convert_cyr_string: 轉換古斯拉夫字串成其它字串。 7.crypt: 將字串用 DES 編碼加密。 8.echo: 輸出字串。 9.explode: 切開字串。 10.flush: 清出輸出緩衝區。 11.get_meta_
Time of Update: 2016-07-21
前幾天安裝了dedecms系統,當在後台安全退出的時候,後台出現空白,先前只分析其他功能去了,也沒太注意安全,看了一下安全退出的代碼,是這樣寫的:複製代碼 代碼如下:function exitUser() { ClearMyAddon(); @($this->keepUserIDTag); @session_unregister($this->keepUserTypeTag); @session_unregister($this->keepUserChannelTag)
Time of Update: 2016-07-21
常用的魔術方法有:__Tostring () __Call() __autoLoad() __ clone() __GET() __SET() __isset() __unset() 1.__Tostring() 用於定義輸出對象引用時調用 常用於列印一些對象的資訊 必須有傳回值eg:有一個persion類Persion per =new persion()Echo per; //直接調用會出錯我們可以在類的定義中添加__tostring()方法複製代碼
Time of Update: 2016-07-21
function microtimeFloat() { list($usec,$sec) = explode(" ", microtime()); return((float)$usec + (float)$sec);}1.測試file_put_contents複製代碼 代碼如下:$userCount = 1000;$itemCount = 1000;$file = 'ratings.txt';file_exists($file)
Time of Update: 2016-07-21
php中的session可以預設情況下是使用用戶端的cookie(以便和普通意義上的cookie區別,我稱之為session cookie,普通意義上的cookie為cookie)來儲存session id的,但是php中的session是否只能使用session cookie呢?當然不是,否則何必還弄個session出來,不如直接用cookie算了.session的一大優點就是當用戶端的cookie被禁用時會自動把session id附在url中,這樣再通過session
Time of Update: 2016-07-21
一般情況下設定PHP指令碼執行逾時的時間一、在php.ini裡面設定max_execution_time = 1800; 二、通過PHP的ini_set 函數設定ini_set("max_execution_time", "1800"); 三、通過set_time_limit 函數設定set_time_limit(1800);PHP-Fcgi下PHP的執行時間設定方法昨天,一個程式需要匯出500條資料,結果發現到150條是,Nginx報出504 Gateway
Time of Update: 2016-07-21
初學PHP做網站,想在頁面上獲得目前時間,學過編程的人都知道用時間函數date(),先用這個函數格式化一個本地時間/日期,先寫個測試代碼吧,結果輸出時間比實際時間少了8小時,這是什麼原因呢:複製代碼 代碼如下: echo date('Y-m-d H:i:s'); ?〉輸出目前時間:2008-10-12 02:32:17 怪了,實際時間是:2008-10-12 10:32:17難道是PHP的date()時間不正確 少8個小時? 再看看PHP手冊的“例子 1. date()
Time of Update: 2016-07-21
在工作中需要處理多語言的翻譯問題,翻譯都是寫在excel表格裡面。為了處理方便我就保留中文和英文兩列。這樣需要將這些資料從excel中取出來,然乎儲存在excel的數組中,通過使用迴圈數組將相應的資料放入到資料庫中。所以工作的第一步就是要將資料從excel中取出來。這裡我使用到了一個開源php處理excel類:phpexcel. 該項目的詳細資料 http://phpexcel.codeplex.com/ 。我目前使用的是phpexcel1.7.3版本,
Time of Update: 2016-07-21
在 PHP5.0 以上版本裡,還相容了 4.0 版本的建構函式的定義規則。如果同時定義了4.0的建構函式和 __construct()函數,則__construct() 函數優先。為了使類代碼同時相容 PHP4.0 和 5.0,可以採取以下的方式:複製代碼 代碼如下:class MyClass { function __construct() { //for PHP5.0 echo 'this is class2 construct'; } // 為了使類代碼同時相容 PHP4.0 和 5.0
Time of Update: 2016-07-21
因為自己使用字元編碼一般的是utf-8編碼,但如果對方的部落格使用gb2312編碼的話,POST過來就會出現亂碼(除非對方POST前先轉換編碼)。在不能保證對方是否一定使用utf-8編碼的情況下,自己做一個編碼的檢查和轉換是很有必要的。寫了個函數來完成這個工作,原理很簡單,因為gb2312/gbk是中文兩位元組,這兩個位元組是有取值範圍的,而utf-8中漢字是三位元組,同樣每個位元組也有取值範圍。而英文不管在何種編碼情況下,都是小於128,只佔用一個位元組(全形除外)。如果是檔案形式的編碼檢查,
Time of Update: 2016-07-21
複製代碼 代碼如下: /** * 擷取指定日期所在月的開始日期與結束日期 * @param string $date * @param boolean 為true返回開始日期,否則返回結束日期 * @return array * @access private */ private function getMonthRange( $date, $returnFirstDay = true ) { $timestamp =
Time of Update: 2016-07-21
利用PHP5中GD庫產生圖形驗證碼 類似於下面這樣 1.利用GD庫函數產生圖片,並在圖片上寫指定字元 imagecreatetruecolor 建立一個真彩色映像 imagecolorallocate 為一幅映像分配顏色(調色盤) imagestring 繪製字元 imageline 繪製線條 imagesetpixel 打像素點 2.輸出圖片 imagejpeg($img); PHP實現過程,代碼中注釋詳細,這裡不做過多解釋 verify.php 複製代碼 代碼如下:
Time of Update: 2016-07-21
寫了一個小東西記錄baidu和google對於網站的收錄情況,現在可以查詢了,其實也沒什麼難度,就是去file下遠程檔案,然後分析下。對了貌似查google pr的東西只是file一個地址而已,如此說了就沒有什麼難度了。完整代碼如下,file取得檔案,分析,輸出:複製代碼 代碼如下:$seodetail = array();$domain = !empty($_GET['q']) ? $_GET['q'] :
Time of Update: 2016-07-21
關鍵代碼:複製代碼 代碼如下: header("Content-type:application/vnd.ms-excel"); header("Conten-Disposition:filename=hp.xlsx"); ?>第一句是用來聲明檔案內容的格式;第二局是用來修改檔案名稱的。如果沒有第二個語句的話,產生的檔案將是沒有尾碼名的。實現代碼:複製代碼 代碼如下: header("Content-type:application/vnd.ms-excel"); header("Conten-