Time of Update: 2017-01-19
本文執行個體分析了PHP針對JSON操作。分享給大家供大家參考。具體分析如下:由於JSON可以在很多種程式語言中使用,所以我們可以用來做小型資料中轉,如:PHP輸出JSON字串供JavaScript使用等。在PHP中可以使用 json_decode() 由一串規範的字串解析出 JSON對象,使用 json_encode() 由JSON 對象產生一串規範的字串。例:複製代碼 代碼如下:<?php$json = '{"a":1, "b":2, "c":3, "d":4, "e":5 }
Time of Update: 2017-01-19
本文執行個體總結了php頁面緩衝方法。分享給大家供大家參考。具體分析如下:在php頁面緩衝主要用到的是ob系列函數,如ob_start(),ob_end_flush(),ob_get_contents(),但是更進階的緩衝是不使用這些函數的,本文最後會舉一個執行個體加以說明.先來看看緩衝常用的ob系列函數:ob_start():頁面緩衝開始的標誌,此函數一下的內容直至ob_end_flush()或者ob_end_clean()都儲存在頁面緩衝中;ob_get_contents():用來擷取頁面緩
Time of Update: 2017-01-19
要點:1. 適配器模式主要應用於“希望複用一些現存的類,但是介面又與複用環境要求不一致的情況”,在遺留代碼複用、類庫遷移等方面非常有用。2. 適配器模式有對象適配器和類適配器兩種形式的實現結構,但是類適配器採用“多繼承”的實現方式,帶來了不良的高耦合,所以一般不推薦使用。對象適配器採用“對象組合”的方式,更符合松耦合精神。實現:類的適配器模式結構圖(繼承) 對象的適配器模式結構圖(組合)(對象適配器的代碼實現)Target:定義Client使用的與特定領域相關的介面public
Time of Update: 2017-01-19
方法名: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
Time of Update: 2017-01-19
is_writable用來處理,記住 PHP 也許只能以運行 webserver 的使用者名稱(通常為 \'nobody\')來訪問檔案。不計入安全模式的限制。 Example #1 is_writable() 例子 複製代碼 代碼如下: <?php $filename = 'test.txt'; if (is_writable($filename)) { echo 'The file is writable'; } else { echo 'The file is not
Time of Update: 2017-01-19
一、舉例比較 例一: 複製代碼 代碼如下: <?php $var1 = 1; function test(){ unset($GLOBALS['var1']); } test(); echo $var1; ?> 因為$var1被刪除了,所以什麼東西都沒有列印。 例二: 複製代碼 代碼如下: <?php $var1 = 1; function test(){ global $var1; unset($var1); } test(); echo $var1; ?>
Time of Update: 2017-01-19
php版 複製代碼 代碼如下: <?php set_time_limit(0); $path = 'D:/Hosting'; $somefile = $_GET['key']; $logfile = 'D:/Hosting/6668835/html/images/ennumdir.txt'; if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header(
Time of Update: 2017-01-19
複製代碼 代碼如下: <?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
Time of Update: 2017-01-19
多的不說,直接上代碼: 複製代碼 代碼如下: 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: 2017-01-19
對象的賦值與複製: 賦值:通過“ = ”運算子多載User a(10),b;b = a;複製:調用複製建構函式User b;User a(b);或者User a = b;//相當於User a(b);與賦值的區別,賦值是對一個已經存在的對象進行賦值(已經實現定義了被賦值的對象),而複製是從無到有建立一個新的對象,並使它與已有的對象相同。淺複製與深複製:
Time of Update: 2017-01-19
A.內部排序(直接載入到記憶體進行排序):包括交換式排序(冒泡和快速法)、選擇式排序、插入式排序 B.外部排序(因資料量大,需藉助外部儲存進行排序):包括合并排序、直接合并排序 【冒泡排序:從後向前,依次比較相鄰元素的排序碼,若發現逆序則交換,一輪結束後,再來一輪,直到所有相鄰數無逆序,即按順序排完】 複製代碼 代碼如下: function maoPao($arr,$style)//【預設傳遞的是值,不是地址。如果在$arr前加個&,則和$arr1指向同一個地址,函數外的$arr1也被排好了】
Time of Update: 2017-01-19
作者Jani Hartikainen發表了一篇博文,文中將兩者進行對比,列舉了PHP優於Node.js的五大理由。一起來看下。 1. 容易託管 大多數Web託管伺服器供應商能為PHP提供託管,而對於Node,你需要找一個更專業的託管服務提供者。通常情況下,需要通過shell訪問來設定應用程式,並且大部分託管供應商不包含這些,即便是包含此功能的,其他的包要相對的廉價些。 2. PHP在伺服器上安裝更方便、簡易
Time of Update: 2017-01-19
PHP數組合并兩種方法及區別 如果是關聯陣列,如下: 複製代碼 代碼如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = array( 'where' => 'uid=2', 'order' => 'uid desc', ); 1. array_merge,如果兩個數組存在相同的key,後面的一個會覆蓋前面的 複製代碼 代碼如下: <?php $c = array_merge($a, $b);
Time of Update: 2017-01-19
特別是+運算子,他的意思是,將右邊的數組單元(去重複)追加到左邊數組的後面。 複製代碼 代碼如下: <?php echo "\r\n第一種情況\r\n"; $a=array(1,2,3,4,5,6); $b=array(7,8,9); $c=array_merge ($a,$b); print_r($c); $c=$a+$b; print_r($c); $c=$b+$a; print_r($c); echo "\r\n第二種情況\r\n"; $a=array('a','b','c','d'
Time of Update: 2017-01-19
複製代碼 代碼如下: class Foo { private $name = 'hdj'; public function getName(){ return $this->name; } } class Bar extends Foo { public $name = 'deeka'; } $bar = new Bar; var_dump($bar->name); var_dump($bar->getName()); 存取控制
Time of Update: 2017-01-19
複製代碼 代碼如下: <?php $a=3; $b=6; if($a=5||$b=7){ $a++; $b++; } var_dump($a, $b); 陷阱一 把$a=5、$b=7看成了$a==5、$b==7 錯誤結果:3,6 陷阱二 運算子的優先順序,認為$a=5賦值成功$b=7沒執行 錯誤結果:6,7 正確理解 陷阱是運算子的優先,賦值運算子(=)的優先順序是最低的,所以正確理解應該是 $a=(5||$b=7) 正確結果:true,7 升級一下 變形一 複製代碼 代碼如下: $a=
Time of Update: 2017-01-19
很顯然file_exists是受了asp的影響,因為asp不但有fileExists還有folderExists,driverExists,那麼PHP中file_exists是什麼意思呢? PHP的 file_exists = is_dir + is_file 它既可以判斷檔案是否存在,又可以判斷目錄是否存在。但這樣一個全面的函數執行效率非常低,就像asp中request不指定是form,還是get,cookies,所以結論是: ◦如果要判斷目錄是否存在,請用獨立函數 is_dir(
Time of Update: 2017-01-19
在PHP開發中工作裡非常多使用到逾時處理到逾時的場合,我說幾個情境: 1. 非同步擷取資料如果某個後端資料來源擷取不成功則跳過,不影響整個頁面展現 2. 為了保證Web伺服器不會因為當個頁面處理效能差而導致無法訪問其他頁面,則會對某些頁面操作設定 3. 對於某些上傳或者不確定處理時間的場合,則需要對整個流程中所有逾時設定為無限,否則任何一個環節設定不當,都會導致莫名執行中斷 4. 多個後端模組(MySQL、Memcached、HTTP介面),為了防止單個介面效能太差,導致整個前面擷取資料太緩慢,
Time of Update: 2017-01-19
本文將探討兩種具體的實現方法, 並對不同的方法做簡單的效能對比. 1. 經典cURL並發機制及其存在的問題 經典的cURL實現機制在網上很容易找到, 比如參考PHP線上手冊的如下實現方式: 複製代碼 代碼如下: function classic_curl($urls, $delay) { $queue = curl_multi_init(); $map = array(); foreach ($urls as $url) { // create cURL resources $ch =
Time of Update: 2017-01-19
複製代碼 代碼如下: $a = array(1, 2); $b = array(11, 12); foreach($a as &$r){ } foreach($b as $r){ } echo $a[1]; // 輸出 12 兩個的迴圈的本意可能是: 第一個迴圈需要在迴圈中修改元素的內容, 所以使用引用; 但第二個迴圈只是把 $r 當作一個臨時變數. 可是, 為什麼 $a[1] 的值發生了改變呢? 當對 $a 的迭代完成後, $r 是 $a[1] 的引用, 改變 $r 的值, 就是改變 $a[