Time of Update: 2017-01-19
複製代碼 代碼如下: <?php /** * 觀察者模式 * * 定義對象間的一種一對多的依賴關係,以便當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並自動重新整理 * 能夠便利地建立查看目標對象狀態的對象,並且提供與核心對象非耦合的指定功能 * 外掛程式系統 */ class Observerable { private $_observers = array(); public function registerObserver($observer) { $this->
Time of Update: 2017-01-19
簡介如何在php中方便地解析html代碼,估計是每個phper都會遇到的問題。用phpQuery就可以讓php處理html代碼像jQuery一樣方便。項目地址:https://code.google.com/p/phpquery/github地址:https://github.com/TobiaszCudnik/phpqueryDEMO下載庫檔案:https://code.google.com/p/phpquery/downloads/list我下的是onefile版:phpQuery-0.9.
Time of Update: 2017-01-19
PHP實現的代碼先奉上:複製代碼 代碼如下:function bubble_sort($array) { for ($i = 0; $i < count($array) - 1; $i++) { //$i為已經排過序的元素個數 for ($j = 0; $j < count($array) - 1 - $i; $j++)
Time of Update: 2017-01-19
大家都知道PHP已經是當前最流行的Web應用程式設計語言了。但是也與其他指令碼語言一樣,PHP也有幾個很危險的安全性漏洞。所以在這篇教學文章中,我們將大致看看幾個實用的技巧來讓你避免一些常見的PHP安全問題。技巧1:使用合適的錯誤報表一般在開發過程中,很多程式員總是忘了製作程式錯誤報表,這是極大的錯誤,因為恰當的錯誤報表不僅僅是最好的調試工具,也是極佳的安全性漏洞偵查工具,這能讓你把應用真正上線前儘可能找出你將會遇到的問題。當然也有很多方式去啟用錯誤報表。比如在 php.in
Time of Update: 2017-01-19
1、php下載原理圖2、檔案下載源碼:複製代碼 代碼如下:<?php$file_name="哈哈.jpg";//需要下載的檔案$file_name=iconv("utf-8","gb2312","$file_name");$fp=fopen($file_name,"r+");//下載檔案必須先要將檔案開啟,寫入記憶體if(!file_exists($file_name)){//判斷檔案是否存在 echo "檔案不存在"; &
Time of Update: 2017-01-19
複製代碼 代碼如下:$area = array(array('id'=>1,'name'=>'安徽','parent'=>0),array('id'=>2,'name'=>'海澱','parent'=>7),array('id'=>3,'name'=>'濉溪縣','parent'=>5),array('id'=>4,'name'=>'昌平','parent'=>7),array('id'=>5,'name'=>'
Time of Update: 2017-01-19
代碼很簡單,這裡就不多BB了,大家看注釋吧,注釋都看不懂的小夥伴,求放過PHP!!!複製代碼 代碼如下:<?php/*** 漢字拼音首字母工具類* 註: 英文的字串:不變返回(包括數字) eg .abc123 => abc123* 中文字串:返回拼音首字元 eg. 測試字串 =>
Time of Update: 2017-01-19
本文執行個體講述了php檔案快取類用法。分享給大家供大家參考。具體如下:<?php/** * 簡單的檔案快取類 * */class XZCache{ // default cache time one hour var $cache_time = 3600; // default cache dir var $cache_dir = './cache'; public function __construct($cache_dir=null, $cache_time=null){
Time of Update: 2017-01-19
本文執行個體分析了thinkphp檔案處理類Dir.class.php的用法。分享給大家供大家參考。具體分析如下:在我的WBlog中,有個清除緩衝工能,所謂清除緩衝就是刪除程式運行時產生的快取檔案,這些檔案全部都存在項目的Runtime檔案夾裡面,當時在做這個清除緩衝的程式時使用項目函數庫自訂的一個函數來刪除快取檔案,只能整個地刪除Runtime,太粗糙了,我覺得有必要作一下細分刪除,其實thinkphp擴充類庫有個不錯的檔案處理類Dir.class.php,Dir.class.php類,不是每
Time of Update: 2017-01-19
前幾天寫了一個分表程式,用的hash演算法是crc32.分表的函數如下:複製代碼 代碼如下: function _getHash($username) { $hash = crc32($username) % 512; return $hash; &
Time of Update: 2017-01-19
本文執行個體講述了php實現的美國50個州挑選清單。分享給大家供大家參考。具體如下:這裡展示的是php產生的美國50個州的挑選清單,自動選擇當前州<select name="state" id="state"> <option value="AL" <?PHP if($state=="AL") echo "selected";?>>Alabama</option> <option value="AK"
Time of Update: 2017-01-19
本文執行個體講述了PHP加密解密類。分享給大家供大家參考。具體分析如下:這段代碼支援 數組加密 , 密文有效期間, 各種對稱式加密其中參數如下:* @use ption::en($string, $key);* @param String $string 需要加密的字串* @param String $skey 密鑰* @param int $expiry 密文有效期間, 加密時候有效, 單位 秒,0 為永久有效* @return String1. php代碼如下:/* *
Time of Update: 2017-01-19
本文執行個體講述了php通過分類列表產生分類樹數組的方法。分享給大家供大家參考。具體分析如下:這裡$list 為分類列表數組,鍵為分類別識別碼,值為分類節點對象,pid 為父分類別識別碼php代碼如下:$tree = array();foreach ($list as $id => $row) { $pid = $row->pid; if ($pid == 0) { $tree[] = &$list[$id]; } else if (isset($list[$pid])) { $
Time of Update: 2017-01-19
本文執行個體講述了php擷取本周星期一具體日期的方法。分享給大家供大家參考。具體如下:private function mondayTime($timestamp=0,$is_return_timestamp=true){ static $cache ; $id = $timestamp.$is_return_timestamp; if(!isset($cache[$id])){ if(!$timestamp) $timestamp = time(); $monday_date =
Time of Update: 2017-01-19
本文執行個體講述了php實現猴子選大王問題演算法。分享給大家供大家參考。具體分析如下:一、問題:n只猴子圍坐成一個圈,按順時針方向從1到n編號。然後從1號猴子開始沿順時針方向從1開始報數,報到m的猴子出局,再從剛出局猴子的下一個位置重新開始報數,如此重複,直至剩下一個猴子,它就是大王。設計並編寫程式,實現如下功能:(1) 要求由使用者輸入開始時的猴子數$n、報數的最後一個數$m。(2) 給出當選猴王的初始編號。二、解決方案:/** *
Time of Update: 2017-01-19
網上有很多種方法擷取隨機唯一的HASH值,但是大同小異:1、先擷取隨機的唯一字串2、進行MD5或者sha1算HASH值一個項目要用到hash值,就去網上找了找,卻發現PHP有一個函數能直接產生唯一字串——uniqid(),通過使用這個函數,再加上自己產生的隨機數(防止被破解),更具有唯一性且不易被猜解。主要考慮問題如下:1、隨機的效率與隨機性:rand和mt_rand函數的選擇,首選mt_rand,效率高,隨機性好;2、隨機次數:選擇5次,本來unniqid就是唯一的,加上隨機的可以只是增強安全
Time of Update: 2017-01-19
本文執行個體講述了php隱藏實際地址的檔案下載方法。分享給大家供大家參考。具體如下:下面這段php代碼可不透露實際的檔案下載地址。function download_document($filename,$path="",$mimetype="application/octet-stream"){ header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Disposition:
Time of Update: 2017-01-19
本文執行個體講述了php實現用於計算執行時間的類。分享給大家供大家參考。具體如下:有了這個php類,計算函數或者一段代碼的執行時間就簡單了<?phpclass c_Timer {var $t_start = 0;var $t_stop = 0;var $t_elapsed = 0;function start() {$this->t_start = microtime();}function stop() {$this->t_stop =
Time of Update: 2017-01-19
本文執行個體講述了php實現二進位和文本相互轉換的方法。分享給大家供大家參考。具體如下:這段程式碼封裝含兩個函數,bin2text,二進位轉換為文本,text2bin,文本轉換成二進位<?phpfunction bin2text($bin_str){ $text_str = ''; $chars = explode("\n",chunk_split(str_replace("\n",'',$bin_str),8)); $_I = count($chars); for($i = 0;
Time of Update: 2017-01-19
本文執行個體講述了php使用指定字元列表產生隨機字串的方法。分享給大家供大家參考。具體如下:<?phpfunction randomString($len) { srand(date("s")); $possible="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()"; $str=""; while(strlen($str)<$len) { $str.=substr(