Time of Update: 2018-12-08
定義和用法 PHP extract() 函數從數組中把變數匯入到當前的符號表中。 對於數組中的每個元素,鍵名用於變數名,索引值用於變數值。 第二個參數 type 用於指定當某個變數已經存在,而數組中又有同名元素時,extract() 函數如何對待這樣的衝突。 本函數返回成功設定的變數數目。 文法 extract(array,extract_rules,prefix)參數描述array必需。規定要使用的輸入。extract_rules可選。extract() 函數將檢查每個鍵名是否為合法的變數名,
Time of Update: 2018-12-08
1.原廠模式 主要作用是降低耦合度。 複製代碼 代碼如下:abstract class Operation{ abstract public function getValue($num1,$num2); public function getAttr(){ return 1; } } class Add extends Operation{ public function getValue($num1, $num2){ return $num1+$num2; } } class Sub
Time of Update: 2018-12-08
(1) 開啟php的安全模式 php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函數,比如system(), 同時把很多檔案操作函數進行了許可權控制,也不允許對某些關鍵檔案的檔案,比如/etc/passwd, 但是預設的php.ini是沒有開啟安全模式的,我們把它開啟: safe_mode = on (2) 使用者組安全 當safe_mode開啟時,safe_mode_gid被關閉,那麼php指令碼能夠對檔案進行訪問,而且相同
Time of Update: 2018-12-08
動畫中的原代碼如下: 複製代碼 代碼如下:VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "tw" Attribute
Time of Update: 2018-12-08
PHP多進程:使用PHP的Process Control Functions(PCNTL/線程式控制制函數) 函數參考可見:http://www.php.net/manual/zh/ref.pcntl.php 只能用在Unix Like OS,Windows不可用。 編譯php的時候,需要加上–enable-pcntl,且推薦僅僅在CLI模式運行,不要在WEB伺服器環境運行。 以下為實現PHP多進程的簡單測試代碼: 複製代碼 代碼如下:<?php declare(ticks=1);
Time of Update: 2018-12-08
用到的函數: str_split:把字串分割到數組中。類似的函數explode() 函數把字串分割為數組。array_count_values:用於統計數組中所有值出現的次數。arsort:對數組進行逆向排序並保持索引關係。主要用於對那些單元順序很重要的結合數組進行排序。$str="asdfgfdas323344##$\$fdsdfg*$**$*$**$$443563536254fas";//任意長度字串 複製代碼 代碼如下:$arr=str_split($str);
Time of Update: 2018-12-08
介紹 最新項目——會員收費,目的是要以更好的展現形式表現給使用者,以及添加了新功能(會員機制)。 索引 流程圖 1> 展示介面 2> 擷取折扣價格 介面說明 http請求指令碼(curl或socket) 測試資料 流程圖 其中裡面的demo:是通過url進行展現,裡面的mst是參數,通過不同的參數進行展現。如:http://www.demo.com/?mst=1表示參數為1的demo樣式。 展示介面(4種情況)擷取折扣價格介面說明 1、開通進階會員 psid=2
Time of Update: 2018-12-08
PhpMyAdmin 不能匯出資料的問題,點擊匯出後先是一個請求失敗或者白頁,重新重新整理後就報錯 export.php: Missing parameter: what (FAQ 2.8) export.php: Missing parameter: export_type (FAQ 2.8) 解決方案是: php目錄下的php.ini 設定要調整一下 原來的 post_max_size = 8M ,改大到 post_max_size = 20M 就好了。 php源碼中解決辦法
Time of Update: 2018-12-08
哈哈,會用只是初級階段,要瞭解原理是什麼,這樣才能更好去運用,費話不多說 傳值:是把實參的值賦值給行參 ,那麼對行參的修改,不會影響實參的值 傳引用 :真正的以地址的方式傳遞參數傳遞以後,行參和實參都是同一個對象,只是他們名字不同而已對行參的修改將影響實參的值 說明: 傳值:根copy是一樣的。打個比方,我有一橦房子,我給你建築材料,你建了一個根我的房子一模一樣的房子,你在你的房子做什麼事都不會影響到我,我在我的房子裡做什麼事也不會影響到你,彼此獨立。
Time of Update: 2018-12-08
要點:1. 適配器模式主要應用於“希望複用一些現存的類,但是介面又與複用環境要求不一致的情況”,在遺留代碼複用、類庫遷移等方面非常有用。2. 適配器模式有對象適配器和類適配器兩種形式的實現結構,但是類適配器採用“多繼承”的實現方式,帶來了不良的高耦合,所以一般不推薦使用。對象適配器採用“對象組合”的方式,更符合松耦合精神。實現:類的適配器模式結構圖(繼承)對象的適配器模式結構圖(組合)(對象適配器的代碼實現)Target:定義Client使用的與特定領域相關的介面public
Time of Update: 2018-12-08
方法名:mssql_fetch_row() 測試: 複製代碼 代碼如下:require 'dbconn.php'; $sql = 'select * from _Test'; $query = mssql_query($sql); while($row=mssql_fetch_row($query)) { echo $row['UserId'].'::'.$row[1].'<br>'; } 返回: Notice: Undefined index: UserId in D:/_PHP_
Time of Update: 2018-12-08
1、普遍緩衝技術: 資料緩衝:這裡所說的資料緩衝是指資料庫查詢PHP緩衝機制,每次訪問頁面的時候,都會先檢測相應的快取資料是否存在,如果不存在,就串連資料庫,得到資料,並把查詢結果序列化後儲存到檔案中,以後同樣的查詢結果就直接從緩衝表或檔案中獲得。 用的最廣的例子看Discuz的搜尋功能,把結果ID緩衝到一個表中,下次搜尋相同關鍵字時先搜尋緩衝表。
Time of Update: 2018-12-08
1、++i 的用法(以 a=++i ,i=2 為例) 先將 i 值加 1 (也就是 i=i+1 ),然後賦給變數 a (也就是 a=i ), 則最終 a 值等於 3 , i 值等於 3 。 所以 a=++i 相當於 i=i+1 ,a=i 2、i++ 的用法(以 a=i++ ,i=2 為例) 先將 i 值賦給變數 a (也就是 a=i ),然後 i 值加 1 (也就是 i=i+1 ), 則最終 a 值等於 2 ,i 值等於 3 。 所以 a=i++ 相當於 a=i , i=i+1 3、++i 與
Time of Update: 2018-12-08
一、舉例比較 例一: 複製代碼 代碼如下:<?php $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?> 因為$var1被刪除了,所以什麼東西都沒有列印。 例二: 複製代碼 代碼如下:<?php $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?> 意外的列印了1
Time of Update: 2018-12-08
多的不說,直接上代碼: 複製代碼 代碼如下:ignore_user_abort(true); //設定用戶端中斷連線時是否中斷指令碼的執行 set_time_limit(0); $file = '/tmp/ignore_user.txt'; if(!file_exists($file)) { file_put_contents($file); } if(!$handle = fopen($file,'a+b')){ echo "not open file :".$file; exit; }
Time of Update: 2018-12-08
(注意不是用 header ,js 等方法做的用戶端跳轉) 複製代碼 代碼如下:function server_transfer($dest) { global ...; // 把希望在新頁面中用到的本頁變數或者自訂的全域變數列在這裡 include $dest; // 運行新指令碼 exit; // 退出本指令碼 } 注意: 1. 如果跳轉之前輸出的任何資料都會在新頁面中顯示,除非使用 ob_start 緩衝,可以在跳轉之前清空,這樣就互不影響了. 2. 由於新頁面在一個自訂的函數範圍內運行,
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php class Crypt3Des { private $key = ""; private $iv = ""; /** * 構造,傳遞二個已經進行base64_encode的KEY與IV * * @param string $key * @param string $iv */ function __construct ($key, $iv) { if (empty($key) || empty($iv)) { echo 'key and iv is not
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php /* *讀取檔案內容至字串中,同時去除換行、行首行尾空格。 */ header("Content-type: text/html; charset=utf-8"); echo preg_replace('/((\s)*(\n)+(\s)*)/i',',',file_get_contents('./file.php'));//End_php //輸出:
Time of Update: 2018-12-08
以下是核心檔案: index.php檔案 複製代碼 代碼如下:<?php header('Content-Type:text/html charset:utf-8'); date_default_timezone_set('PRC'); $rootDir = 'listFile'; //網站根目錄,裝載本程式所有檔案 //網站base_url設定方法: //考慮到通用性,現預設使用方法二,修改方法時注意同時修改.htaccess檔案 //方法一:佈建網站目錄為根目錄
Time of Update: 2018-12-08
/** * $splitChar 欄位分隔符號 * $file 資料檔案檔案名稱 * $table 資料庫表名 * $conn 資料庫連接 * $fields 資料對應的列名 * $insertType 插入操作類型,包括INSERT,REPLACE */ 複製代碼 代碼如下:<?php /** * $splitChar 欄位分隔符號 * $file 資料檔案檔案名稱 * $table 資料庫表名 * $conn 資料庫連接 * $fields 資料對應的列名 * $insertType