Time of Update: 2018-12-08
1.1.1 zval結構Zend使用zval結構來儲存PHP變數的值,該結構如下所示:複製代碼 代碼如下:typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value */ struct { char *val; int len; } str; HashTable *ht; /* hash table value */ zend_object_value obj;
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php function make_rand($length="32"){//驗證碼文字產生函數 $str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; $result=""; for($i=0;$i<$length;$i++){ $num[$i]=rand(0,61); $result.=$str[$num[$
Time of Update: 2018-12-08
有關 PHP 的 empty(),isset() 還有 is_null() 這三個函數的用法討論得已經很多了,而且很多資料也未必能說得很清楚。這裡再重複一次,但不是從概念去說,直接用程式例子來說話,應該記憶會比較深刻些。測試的類型如下:複製代碼 代碼如下:<?php $a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); ?>empty()首先是empty的var_dump輸出:複製代碼 代碼如下:<?php var_
Time of Update: 2018-12-08
PHP轉換檔夾下所有檔案的編碼 適合發布網站的其他編碼版本 比如你有一個GBK版本 你想有一個UTF8版本 或者你只有GBK的源碼 你想二次開發 但是你不想改變IDE的編碼方式 你可以用這個程式將其批量轉化為UTF8:代碼如下:複製代碼 代碼如下:<?php/*** 把一個檔案夾裡的檔案全部轉碼 只能轉一次 否則全部變亂碼* @param string $filename*/function
Time of Update: 2018-12-08
1、入門簡介簡單的說,Regex是一種可以用於模式比對和替換的強有力的工具。我們可以在幾乎所有的基於UNIX系統的工具中找到Regex的身影,例如,vi編輯器,Perl或PHP指令碼語言,以及awk或sed
Time of Update: 2018-12-08
nl2br()函數可將字串中的分行符號轉成HTML的分行符號號複製代碼 代碼如下:<?php $str = "最近幾天一直在下雨,難過死了 ,球也打不成,鞋子也濕透了。"; echo $str; echo "<br />"; echo nl2br($str); ?>輸出結果:複製代碼 代碼如下:最近幾天一直在下雨,難過死了,球也打不成,鞋子也濕透了。最近幾天一直在下雨,難過死了,球也打不成,鞋子也濕透了。附:深入探討"<br
Time of Update: 2018-12-08
個人認為影響的原因:匹配到的圖片url並不是有效url,文中只是簡單的判斷是否是相對路徑,但是有些url是失效的 解決辦法:就是新增判斷是否是真實有效url的圖片複製代碼 代碼如下:/** * *判斷url是否有效 *@param $url string *@return boole */function relUrl($url){ if(substr($url,0,4)=='http'){ $array = get_headers($url,true);
Time of Update: 2018-12-08
PHP運行模式有4鐘:1)cgi 通用閘道介面(Common Gateway Interface))2) fast-cgi 常駐 (long-live) 型的 CGI3) cli 命令列運行 (Command Line Interface)4)web模組模式 (apache等web伺服器啟動並執行模組模式)1.CGI(Common Gateway Interface)CGI即通用閘道介面(Common Gateway Interface),它是一段程式,
Time of Update: 2018-12-08
以前做過一道php面試題是這樣的:不使用第三個變數實現交換兩個變數的值。一般都是藉助第三個中間變數來實現原來兩個變數的值交換,但是這道題卻要求不能使用中間變數,這對於初學者來說也算是一個難題了。網上找到的幾種方法總結如下:複製代碼 代碼如下://字串版本 結合使用substr,strlen兩個方法實現$a="a";$b="b";echo '交換前 $a:'.$a.',$b:'.$b.'<br />';$a.=$b;$b=substr($a,0,(strlen($a)-strlen($
Time of Update: 2018-12-08
對於命名空間,官方文檔已經說得很詳細[查看],我在這裡做了一下實踐和總結。命名空間一個最明確的目的就是解決重名問題,PHP中不允許兩個函數或者類出現相同的名字,否則會產生一個致命的錯誤。這種情況下只要避免命名重複就可以解決,最常見的一種做法是約定一個首碼。例:項目中有兩個模組:article和message
Time of Update: 2018-12-08
今天寫了下無限極分類 下面就把代碼貼上來了 寫的不怎麼樣。method of classify one複製代碼 代碼如下:<?php/*reader: 這是自己寫的無限極分類實現方法 裡面的編輯方法只是對分類名進行了編輯 沒有進行移動操作 小弟能力有限忘大家多多包涵啊 第一種方法:CREATE TABLE `types` ( `type_id` int(11) NOT NULL AUTO_INCREMENT, `type_name` varchar(20) NOT NULL,
Time of Update: 2018-12-08
小編今天寫下關於後台管理員權限的分配自己的思路想法複製代碼 代碼如下:<?php /**reader * 小編的思想比較簡單實現的功能 * 首先每個欄目的id號是固定不變的 然後 總管理員 * 建立個管理員之後 給該管理員分配許可權的時候 把相應的欄目勾選上 * 這樣把欄目的 id 號 就插入到資料庫裡面了,當這個管理員登入之後 * 獲得這個管理員 應有的的欄目id 號 。左邊的導航 根據當前的欄目id在不在該管理員的 * 欄目id號裡 來判斷顯示或者不顯示呢.. */ header(
Time of Update: 2018-12-08
一、gzip介紹 gzip是GNU zip的縮寫,它是一個GNU自由軟體的檔案壓縮程式,也經常用來表示gzip這種檔案格式。軟體的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公開發布,版本號碼是0.1,目前的穩定版本是1.2.4。 Gzip主要用於Unix系統的檔案壓縮。我們在Linux中經常會用到尾碼為.gz的檔案,它們就是GZIP格式的。現今已經成為Internet
Time of Update: 2018-12-08
一>>range()函數快速建立數組的簡單方法,使用low到high範圍的整數值填充數組,函數將返回一個包含次範圍內所有整數的數組.形式如下array range(int low,int high[,int step])典型用法如下例子:建立1-6的6個數位數組(骰子)$die = range(0,6);建立0-30所有雙數的數組$even = (0,20,2);//步長為2這個函數不僅僅可以用作數字,還可以用作字母.如$words =
Time of Update: 2018-12-08
下面用一個例子說明:web service服務是查詢QQ使用者是否線上使用php5開發用戶端:複製代碼 代碼如下:<?phptry { //$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8')); $client = new SoapClient("http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?
Time of Update: 2018-12-08
一開始,我想在重寫規則裡直接禁止php尾碼的URL被訪問。但後來發現重寫規則是遞迴調用的,如果在重寫規則裡直接禁止php,那麼重寫到php檔案的規則也會失效。RewriteEngineOn複製代碼 代碼如下: RewriteRule^test$/test.php[L] RewriteRule^test.php$$0[F,L] 遞迴調用這真可怕,一開始訪問/test的時候URL重寫檢查一次,然後匹配到^test$就內部重新導向到/test.php,然而內部重新導向也會觸發URL重寫,
Time of Update: 2018-12-08
一、類文檔說明複製代碼 代碼如下:class Image_Tool{ /** * 構造Image_Tool對象 * @param string|array $img_data * $img_data可以為圖片的路徑 */ function __construct($img_data=""); /** * 添加文字註解,或用於文字浮水印 * @access public * @param string $txt UTF8編碼的文本 * @param
Time of Update: 2018-12-08
這裡要注意的是js的時間戳記是13位,php的時間戳記是10位,轉換函式如下: 複製代碼 代碼如下:var nowtime = (new Date).getTime();/*目前時間戳*/ /*轉換時間,計算差值*/ function comptime(beginTime,endTime){ var secondNum = parseInt((endTime-beginTime*1000)/1000);//計算時間戳記差值
Time of Update: 2018-12-08
老聲長談,著是困惑很多人的問題,如果處理不好,都是亂碼,說這些話並不是我對編碼很精通,只是在這方面是得留神,自己總結了一點小經驗(容易出現亂碼的地方有php檔案裡面 ,資料庫裡面 儲存 的編碼 ,頁面顯示 ,資料轉送 ):1.在建資料庫的時候,尤其是用phpMyAdmin與MYSQL打交道時候,一般都是utf-8,欄位為 utf8_general_ci資料庫的設定:在my.ini檔案中尋找:[mysql]default-character-set =
Time of Update: 2018-12-08
1.自訂常量 * 必須用函數define()定義 * 定義完後其值不能再改變了 * 使用時直接用常量名,不能像變數一樣在前面加$s 例如:define("PI",3.14);定義一個常量 $area = PI*R*R; 計算圓的面積 define("URL","http://www.jb51.net"); echo "我的網址是:".URL;2 系統常量: FILE :php程式檔案名稱 LINE :PHP程式檔案行數