Time of Update: 2017-01-13
實現網站文章裡面上一篇和下一篇的sql語句的寫法。當前文章的id為 $article_id,當前文章對應分類的id是$cat_id,那麼上一篇就應該是:代碼如下SELECT max(article_id) FROM article WHERE article_id < $article_id AND cat_id=$cat_id;執行這段sql語句後得到 $max_id,然後SELECT article_id, title FROM article WHERE article_id = $
Time of Update: 2017-01-13
因為正確的驗證碼結果已經經過加密之後儲存在了session中,所有用於輸入的驗證碼會跟session中的進行比對,從而判斷驗證碼是否輸入有誤!既然老是顯示:"驗證碼輸入有誤"說明session中儲存到結果可能有問題。然後,dump下session,發現結果為null......解決辦法:使用phpinfo查看session資訊,找出session的儲存路徑,然後給其設定寫入的許可權即可如果無法解決可以參考下面現在我們來拋開cookie使用session,主要途徑有三條:1、設
Time of Update: 2017-01-13
例子一網頁的分頁選擇效果直接影響使用者的使用體驗。類似功能的方法有很多,我在這裡寫的方法主要是的優勢在於前後端分離,可以自己定義長度和分頁的行數。 測試圖例: 效果圖:例子 /** * * @param $page
Time of Update: 2017-01-13
購物類網站有時候需要瞭解使用者最近的需求,收集和推送使用者的查看記錄成為了大部分此類的網站不可缺少的功能,下面是本人在開發項目中自己寫的方法,一來留有儲存,二來和大家分享!【基礎】Cookie常用方法:$_COOKIE[‘RecordLuHuiDUDU’] 得到Cookiesetcookie(‘RecordLuHuiDUDU’,”,time()-3600*24*30); setcookie(欄位名,資料,到期時間); 設定Cookie【
Time of Update: 2017-01-13
最近在研究聊天室技術,因為我是做php的,肯定想要從php入手,偶的一個聊天室,下載地址:http://pan.baidu.com/s/1dDWsbip密碼:i2qz正在修行當中,準備以此為基礎做一款php的聊天室系統出來,php的東西比較容易看懂,但是我遇到的一個問題是前台檔案如何發送資訊到後台伺服器呢,後來研究發現是用的js 的WebSocket技術,如下是常用js WebSocket 常用操作:var socket = new WebSocket('ws://localhost:8080'
Time of Update: 2017-01-13
當文章內容特長時,為了方便閱讀和頁面展示我們一般將內容分頁來顯示。而一般分頁處理是在後台發布文章的時候就將提交的內容產生多個分頁後的靜態檔案。本文我們結合執行個體來講解採用PHP動態將長文章內容進行分頁處理。手動分頁:一般在編輯內容時加入特殊分頁標記,如{pages},提交後,PHP程式會根據分頁符處理分頁,產生不同的靜態頁面。這種分頁方法分頁準確,但是需要人工手動添加分頁符,工作量大。自動分頁:PHP程式會根據設定好的分頁符將內容進行分頁,然後產生不同的靜態頁面。該方法效率高,對處理不同的ht
Time of Update: 2017-01-13
例子一 圖片合成文字<?php $im = imagecreatetruecolor(400, 30); //建立400 30像素大小的畫布 $white = imagecolorallocate($im, 255, 255, 255);$grey = imagecolorallocate($im, 128, 128,
Time of Update: 2017-01-13
在處理php數組的時候,有一種需求特別的頻繁,如下二維數組:$arr = array(1=>array('id' => 5,'name' => '張三'),2=>array('id' => 6,'name' => '李四'));目的就是要取到key為name的集合,得到這個結果:$arr2 = array( 0=>'張三', 1=>'李四' );這裡有幾種方法:1:最簡單的,foreach遍曆數組:foreach ($
Time of Update: 2017-01-13
當一個目錄下有很多檔案時,伺服器的處理效能會變低,php預設的session僅僅存放在/tmp目錄下,未進行分級,當有一定的訪問量時,就存在效能問題了。首先,修改 php.ini的 session.save_path 選項修改如下:session.save_path = “2;/tmp/session” (去掉前面分號)表示把session存放在 “/tmp/session” 目錄下,並且分成 2
Time of Update: 2017-01-13
Session主要分兩部分:一個是Session資料,該資料預設情況下是存放在伺服器的tmp檔案下的,是以檔案形式存在。另一個是標誌著Session資料的Session Id,Session ID,就是那個 Session 檔案的檔案名稱,Session ID 是隨機產生的,因此能保證唯一性和隨機性,確保 Session 的安全。一般如果沒有設定 Session 的生存周期,則 Session ID 儲存在記憶體中,關閉瀏覽器後該 ID 自動登出,重新請求該頁面後,重新註冊一個 session
Time of Update: 2017-01-13
驗證配置 代碼如下複製代碼 define("TOKEN", "xxx");//改成自己的TOKENdefine('APP_ID', 'xxxx');//改成自己的APPID define('APP_SECRET', 'xxx');//改成自己的APPSECRET$wechatObj = new wechatCallbackapiTest();if (isset($_GET['echostr'])) {
Time of Update: 2017-01-13
如果你網站空間的php.ini檔案裡的magic_quotes_gpc設成了off,那麼PHP就不會在敏感字元前加上反斜線(\\),由於表單提交的內容可能含有敏感字元,如單引號('),就導致了SQL injection的漏洞。在這種情況下,我們可以用addslashes()來解決問題,它會自動在敏感字元前添加反斜線。如何禁用 magic_quotes_gpc 和safe_mode 1,用 php.ini 設定檔全域禁用magic_quotes_gpc = Offsafe_mode = Off2,
Time of Update: 2017-01-13
PHP中將數組轉變成Json 強大的PHP已經提供了內建函數:json_encode() 和 json_decode()。很容易理解,json_encode()就是將PHP數群組轉換成Json。相反,json_decode()就是將Json轉換成PHP數組。例如: 代碼如下複製代碼 $array = array("name" => "Eric","age" => 23); echo
Time of Update: 2017-01-13
代碼如下複製代碼 /**************************** * 擷取目錄下的所有檔案 * [$dir] 檔案夾路徑 ****************************/ function deepScanDir($dir) { $
Time of Update: 2017-01-13
抽象類別(abstract class)和介面(interface)是物件導向很重要的概念,他們很相似,都是定義要實現的方法,但又有不同的使用情境,PHP的抽象類別和介面有什麼區別,看下面的樣本。介面(Interface)—— 定義行為抽象類別(Abstract Class) ——
Time of Update: 2017-01-13
在PHP中,serialize和json兩種方式對一個對象或數組進行序列化或還原序列化有什麼區別呢?假設一個對象和一個數組:$web = new stdClass;$web->site = 'tantengvip';$web->owner = 'tuntun';$web->age = 5;和$web = array();$web['site'] = 'tantengvip';$web['owner'] = 'tuntun';$web['age'] =
Time of Update: 2017-01-13
php語言本身沒有將多維陣列轉為一維數組的函數,但是我們可以自己寫一個php函數來實現將多維轉一維的功能。運用了遞迴,簡單粗暴,整個函數體9行代碼就實現了該功能,php源碼如下:$multi =
Time of Update: 2017-01-13
在WordPress中很多地方使用stdClass來定義一個對象(而通常是用數組的方式),然後使用get_object_vars來把定義的對象『轉換』成數組。如下代碼所示:PHP$tanteng = new stdClass();$tanteng->name = 'tanteng';$tanteng->email = 'xxx@qq.com'; $info = get_object_vars($tanteng);print_r($info);exit;輸出:Array (
Time of Update: 2017-01-13
引用返回手冊裡是這麼寫的:引用返回用在當想用函數找到引用應該被綁定在哪一個變數上面時。不要用返回引用來增加效能,引擎足夠聰明來自己進行最佳化。僅在有合理的技術原因時才返回引用!要返回引用當你想將函數的返回引用綁定到某個變數時,PHP允許你這麼做:function &returns_reference(){ static $someref = 0; $someref++;
Time of Update: 2017-01-13
我們提交表單的時候,不能忽視的一個限制是防止使用者重複提交表單,因為有可能使用者連續點擊了提交按鈕或者是攻擊者惡意提交資料,那麼我們在提交資料後的處理如修改或添加資料到資料庫時就會惹上麻煩。那麼如何規避這中重複提交表單的現象出現呢?我們可以從很多方面入手,首先從前端做限制。前端JavaScript在按鈕被點擊一次後禁用,即disabled,這個方法簡單的防止了多次點擊提交按鈕,但是缺點是如果使用者禁用了javascript指令碼則失效。第二,我們可以在提交後做redirect頁面重新導向,即提交