Time of Update: 2016-07-21
方法一: 複製代碼 代碼如下: $text = '數組aabbccdd'; $text_filter = ''; $filter = array(); $len = mb_strlen($text, 'utf-8'); for ($i = 0; $i$char = mb_substr($text, $i, 1, 'utf-8'); if (!isset($filter[$char])) { $text_filter .= $char; $filter[$char] = $char; } }
Time of Update: 2016-07-21
複製代碼 代碼如下: /** 擷取網卡的MAC地址原碼;目前支援WIN/LINUX系統 擷取機器網卡的物理(MAC)地址 **/ class GetMacAddr{ var $return_array = array(); // 返回帶有MAC地址的字串數組 var $mac_addr; function GetMacAddr($os_type){ switch ( strtolower($os_type) ){ case "linux": $this->forLinux(); break;
Time of Update: 2016-07-21
下面來談談SQL注入攻擊是如何?的,又如何防範。 看這個例子: 複製代碼 代碼如下: // supposed input $name = "ilia'; DELETE FROM users;"; mysql_query("SELECT * FROM users WHERE name='{$name}'"); 很明顯最後資料庫執行的命令是: SELECT * FROM users WHERE name=ilia; DELETE FROM users
Time of Update: 2016-07-21
一、 基礎知識 本章簡要介紹一些Zend引擎的內部機制,這些知識和Extensions密切相關,同時也可以協助我們寫出更加高效的PHP代碼。 1.1 PHP變數的儲存 1.1.1 zval結構 Zend使用zval結構來儲存PHP變數的值,該結構如下所示: 複製代碼 代碼如下: typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value */ struct {
Time of Update: 2016-07-21
一,判斷全是中文 複製代碼 代碼如下: $str="'324是"; if(!eregi("[^\x80-\xff]","$str")){ echo "全是中文"; }else{ echo "不是"; } 二,判斷含有中文 複製代碼 代碼如下: $str = "中文"; if (preg_match("/[\x7f-\xff]/", $str)) { echo "含有中文"; }else{ echo "沒有中文"; } 或 $pattern = '/[^\x00-\x80]/';
Time of Update: 2016-07-21
所有這些命令都衍生一個子進程,用於運行您指定的命令或指令碼,並且每個子進程會在命令輸出寫到標準輸出 (stdout) 時捕捉它們。 shell_exec() shell_exec() 命令列實際上僅是反撇號 (`) 操作符的變體。如果您編寫過 shell 或 Perl 指令碼,您就知道可以在反撇號操作符內部捕捉其他命令的輸出。例如,清單 1 顯示了如何使用反撇號在目前的目錄中擷取每個文本(.txt)的單詞計數。 清單 1. 使用反撇號計算單詞數量 複製代碼 代碼如下: #! /bin/sh
Time of Update: 2016-07-21
圖表庫下面的類庫可以讓你很簡的建立複雜的圖表和圖片。當然,它們需要GD庫的支援。pChart - 一個可以建立統計圖的庫。 Libchart - 這也是一個簡單的統計圖庫。 JpGraph - 一個物件導向的圖片建立類。 Open Flash Chart - 這是一個基於Flash的統計圖。 RSS 解析MagpieRSS - 開源的PHP版RSS解析器,據說功能強大,未驗證。 SimplePie - 這是一個非常快速,而且易用的RSS和Atom 解析庫。 縮圖產生phpThumb -
Time of Update: 2016-07-21
這樣我 想到了繼承來解決,前面發表過一個會話類,這下簡單多了,通過登入來設定使用者的層級,$session->get_status()的返回 值如果是0,則表明目前使用者並不是博主,因此並不具有刪除,編輯文章的許可權。如果是傳回值是1,則表明是博主本人。好 了,廢話少扯。先上代碼 複製代碼 代碼如下: class operationLimit // operating limit. When no user login or is not this user { /* for limit
Time of Update: 2016-07-21
我並不打算詳細解釋專業名詞,有興趣的讀者可以查閱文章結尾處的參考連結,那裡有通俗易懂的解釋: 我們先找一個例子映像(用Canon 550D拍的): 例子圖片:butterfly.jpg 下面看看如何使用Imagick實現映像長條圖:複製代碼 代碼如下: $file = 'butterfly.jpg'; $size = array( 'width' => 256, 'height' => 100, ); $image = new Imagick($file); $histogram =
Time of Update: 2016-07-21
All right, 父類postParent定義為抽象,規定子類必須重新實現 buildHTML()方法,這個方法並沒有花括弧,如果有不管有沒有內容都會報錯的。 現在越看越覺得這代碼完全沒必要用抽象類別,用繼承也都很雞肋,好吧,也沒啥好說的好像。。。。。 另外我把mysql 分開在外面了,所以調用方法很麻煩 1,先執行個體化 readArticle 2,mysql查詢,參數來自 readArticle::getSQL(); 3,返回mysql結果資源給
Time of Update: 2016-07-21
先要到網上下載Snoopy.class.php 調用方法: 複製代碼 代碼如下: require 'lib/Snoopy.class.php'; require 'lib/WebCrawl.class.php';//包含下面代碼 $go=new WebCrawl('http://www.baidu.com'); echo $go->getCharset(); ?> 複製代碼 代碼如下: class WebCrawl { private $url; private $request;
Time of Update: 2016-07-21
引言: 在編寫處理字串的程式或網頁時,經常會有尋找符合某些複雜規則的字串 的需要。Regex就是用於描述這些規則的文法。 例:在判斷使用者郵件地址格式、手機號碼格式或者採集別人網頁內容時. php也常常用到Regex php有兩個常用的Regex函數:preg_match和ereg。 我今天剛看了preg_match.它的具體寫法是preg_match(mode,string subject,array matches); 以下是我寫的一個example. 複製代碼 代碼如下: $mode="/
Time of Update: 2016-07-21
PDO是PHP 5新加入的一個重大功能,因為在PHP 5以前的php4/php3都是一堆的資料庫擴充來跟各個資料庫的串連和處理,什麼 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等擴充來串連MySQL、PostgreSQL、MS SQL Server、SQLite,同樣的,我們必須藉助 ADOdb、PEAR::DB、PHPlib::DB之類的資料庫抽象類別來協助我們,無比煩瑣和低效,畢竟,php代碼的效率怎麼能夠我們直接用C/
Time of Update: 2016-07-21
複製代碼 代碼如下://判斷一個數組是否為空白 /** array( ); 空 array( array( ), array( ), array( ) ); 空 array( array( ), array( array( ), array( 1=>1 ) ), array( ) ); 非 空 */ function is_array_null($value) { if (empty($value)) { return $value; } else { return
Time of Update: 2016-07-21
物件導向的方式 先看看如果串連錯誤等的處理,PHP中PDO的錯誤處理,使用物件導向的方式來處理: 複製代碼 代碼如下: try { $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $db = null; } catch (PDOException $e) { print "Error: " . $e->getMessage() . ""; die(); } ?> 這裡利用我們PHP
Time of Update: 2016-07-21
核心代碼: 複製代碼 代碼如下: header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pramga: no-cache");
Time of Update: 2016-07-21
PHP判斷數組為空白首選方法:count($arr),size($arr); 複製代碼 代碼如下: $arr= array(""); echo count($arr); echo size($arr); //輸出1 複製代碼 代碼如下: $arr= array(); echo count($arr); echo size($arr); //輸出0 PHP判斷數組為空白方法2:empty($arr); 複製代碼 代碼如下: $arr= array(""); $result =
Time of Update: 2016-07-21
複製代碼 代碼如下: function showtext($text){ $search = array('|(http://[^ ]+)|', '|(https://[^ ]+)|', '|(www.[^ ]+)|'); $replace = array('$1', '$1', '$1'); $text = preg_replace($search, $replace, $text); return $text; }
Time of Update: 2016-07-21
打包下載Pain.php 複製代碼 代碼如下: class Pain { public $var=array(); public $tpl=array(); //this is the method to assign vars to the template public function assign($variable,$value=null) { $this->var[$variable]=$value; } public function display($template_name,
Time of Update: 2016-07-21
什麼是語義URL 攻擊? 好奇心是很多攻擊者的主要動機,語義URL 攻擊就是一個很好的例子。此類攻擊主要包括對URL 進行編輯以期發現一些有趣的事情。 例如,如果使用者chris 點擊了你的軟體中的一個連結併到達了頁面http://example.org/private.php?user=chris, 很自然地他可能會試圖改變user的值,看看會發生什麼。例如,他可能訪問http://example.org/private.php?user=rasmus