Time of Update: 2018-12-08
0、用單引號代替雙引號來包含字串,這樣做會更快一些。因為PHP會在雙引號包圍的字串中搜尋變數,單引號則不會,注意:只有echo能這麼做,它是一種可以把多個字串當作參數的“函數”(譯註:PHP手冊中說echo是語言結構,不是真正的函數,故把函數加上了雙引號)。 1、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。2、$row['id'] 的速度是$row[id]的7倍。3、echo 比 print
Time of Update: 2018-12-08
什麼是魔術函數? 對於__開頭的函數就命名為魔術函數, 此類函數都在特定的條件下觸發的.比如: __set() __get()等 在設定或取不存在的屬性時候觸發. 有那些魔術函數呢? 總的來說, 有下面幾個魔術函數 __construct() __destruct() __get() __set() __isset() __unset() __call() __callStatic() __sleep() __wakeup() __toString() __set_state()
Time of Update: 2018-12-08
萬網 whois(使用的介面為萬網提供合法介面) 複製代碼 代碼如下:function whois_hichina($domain) { preg_match("|<pre>(.+?)</pre>|is", @file_get_contents('http://whois.hichina.com/cgi-bin/whois?domain='.$domain.''), $whois); $whois[0] =
Time of Update: 2018-12-08
首先本例基於留言本整理版修改。 我們使用了jquery.js來實現ajax和dom刪除 首先加入複製代碼 代碼如下:<script type="text/javascript" src="lib/jquery.js"></script> 給table加個複製代碼 代碼如下:id="t<!--{$item.id}-->" 寫個js: 複製代碼 代碼如下:<script> function delItem (id) {
Time of Update: 2018-12-08
網上的解決辦法說抓取後用iconv()轉碼。看後我就覺 得不對勁:一個是不一定編譯了iconv庫,更大的問題是編碼都跟流轉換的時候有關(如果用了iconv實際上php轉了兩次碼:流 -> UTF-8 -> GB2312):這不是白忙乎了嗎? 仔細看了下php的文檔(不知道大家都是怎麼寫代碼的,其實文檔上很清楚啊),上面關於fopen()及file_get_contents()都
Time of Update: 2018-12-08
一直以來用這個函數擷取: 複製代碼 代碼如下:function microtime_float(){ list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } 看到別人的源碼中用microtime(true),查了下手冊,原來從PHP 5.0.0 開始,microtime增加了這個參數。 引用 複製代碼 代碼如下:mixed microtime ( [bool
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php // literally from the ABNF in rfc3986 (thanks to 'WCP') function validateIPv6($IP) { return preg_match('/\A (?: (?: (?:[a-f0-9]{1,4}:){6} ::(?:[a-f0-9]{1,4}:){5} (?:[a-f0-9]{1,4})?::(?:[a-f0-9]{1,4}:){4} (?:(?:[a-f0-9]{1,4}:){0,1}[
Time of Update: 2018-12-08
i 匹配大小寫 s 模式中的圓點元字元(.)匹配所有的字元,包括分行符號 x 模式中的空白字元除了被轉義的或在字元類中的以外完全被忽略,在未轉義的字元類之外的 # 以及下一個分行符號之間的所有字元,包括兩 頭,也都被忽略 A (PCRE_ANCHORED) 如果設定了此修正符,模式被強製為“anchored”,即強制僅從目標字串的開頭開始匹配即自動在模式開頭加上^。 D (PCRE_DOLLAR_ENDONLY)
Time of Update: 2018-12-08
複製代碼 代碼如下://———————————————————————————– // 函數名:CheckLengthBetween($C_char, $I_len1, $I_len2=100) // 作 用:判斷是否為指定長度內字串 // 參 數:$C_char(待檢測的字串) // $I_len1 (目標字串長度的下限) // $I_len2 (目標字串長度的上限) // 傳回值:布爾值 // 備 註:無 //———————————————————————————– function
Time of Update: 2018-12-08
先寫一個簡單的抓取頁面函數 複製代碼 代碼如下:<?php function GetSources($Url,$User_Agent='',$Referer_Url='') //抓取某個指定的頁面 { //$Url 需要抓取的頁面地址 //$User_Agent 需要返回的user_agent資訊 如“baiduspider”或“googlebot” $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $Url); curl_setopt (
Time of Update: 2018-12-08
1、截取GB2312字元用的函數 PHP代碼 複製代碼 代碼如下:<?php //截取中文字串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; }
Time of Update: 2018-12-08
合并數組有三個函數: 1.array_combine() 攜帶兩個參數數組,參數數組一的值作新數組的鍵,參數數組二的值作新數組的值。很簡單。 例子: 複製代碼 代碼如下:<?php $a = array('green', 'red', 'yellow'); $b = array('avocado', 'apple', 'banana'); $c = array_combine($a, $b); print_r($c); ?> 上例將輸出: 複製代碼 代碼如下:Array (
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php //search函數 其中$array為數組,$k為要找的值,$low為尋找範圍的最小索引值,$high為尋找範圍的最大索引值 function search($array, $k, $low=0, $high=0) { if(count($array)!=0 and $high == 0) //判斷是否為第一次調用 { $high = count($array); } if($low <= $high) //如果還存在剩餘的數組元素 { $mid =
Time of Update: 2018-12-08
因為PHP會在雙引號包圍的字串中搜尋變數,單引號則不會,注意:只有echo能這麼做,它是一種可以把多個字串當作參數的“函數”(譯註:PHP手冊中說echo是語言結構,不是真正的函數,故把函數加上了雙引號)。 1、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。 2、$row['id'] 的速度是$row[id]的7倍。 3、echo 比 print 快,並且使用echo的多重參數(譯註:指用逗號而不是句點)代替字串串連,比如echo $str1,$str2。
Time of Update: 2018-12-08
1. 解決範圍問題在上一節談到了PHP中函數的範圍問題,如果說類還不夠說明問題,那麼在這篇文章中的範圍例子,也許對您更有說服力。那麼,我們如何能在PHP的函數中訪問外部的變數呢?在PHP中,存在一個概念叫做全域範圍,也就是說,如果你不使用函數(未來會有類的概念),那麼你建立的變數可以在頁面的任何地方訪問。那麼,我們怎麼解決函數體內的問題呢?我們可以使用global關鍵字: <?php $name="kym"; function Test() {
Time of Update: 2018-12-08
但是我們知道,物件導向有三大特徵:繼承,多態和封裝。 1. 繼承 我們繼續上一節中的例子,在PHP中,繼承和Java是一樣的,都使用extends關鍵字。 複製代碼 代碼如下:class People { private $name; public function GetName() { return $this->name; } public function SetName($name) { $this->name=$name; } } class Student
Time of Update: 2018-12-08
1. 方法概述首先,寫一個最簡單的函數,大家看一眼就可以了:<html><head> <title>HelloPHP</title></head><body> <?php function CustomPrint($str) { for($i=0;$i<5;$i++) { echo($str); echo('<br/>'); }
Time of Update: 2018-12-08
在這一節中,我們就來看看在PHP中如何建立一個類和對象。 1. 建立類 在PHP中,建立一個類和在C#/Java中基本類似,閑話少說,給大家看個最簡單的例子: 複製代碼 代碼如下:<?php class People { var $name; public function GetName() { return $this->name; } public function SetName($name) { $this->name=$name; } } $p=new
Time of Update: 2018-12-08
php中主要用到的就是要用到fread()和fwirte()。而靜態頁面產生了之後,就會牽扯到修改的問題。這裡可以用到正則匹配的方法來替換模版中改變的部位。不過此種方法太麻煩,值得推薦的方法是直接把原來產生的模版砍掉,重建,呵呵,真正的一了百了。
Time of Update: 2018-12-08
輸出控制函數不對使用 header() 或 setcookie(), 發送的檔案頭資訊產生影響,只對那些類似於 echo() 和 PHP 代碼的資料區塊有作用。 我們先舉一個簡單的例子,讓大家對Output Control有一個大致的印象: Example 1. PHP代碼 複製代碼 代碼如下:<? ob_start(); //開啟緩衝區 echo "Hello\n"; //輸出 header(“location:index.php”); //把瀏覽器重新導向到index.php