Time of Update: 2018-12-08
在PHP開發中工作裡非常多使用到逾時處理到逾時的場合,我說幾個情境: 1. 非同步擷取資料如果某個後端資料來源擷取不成功則跳過,不影響整個頁面展現 2. 為了保證Web伺服器不會因為當個頁面處理效能差而導致無法訪問其他頁面,則會對某些頁面操作設定 3. 對於某些上傳或者不確定處理時間的場合,則需要對整個流程中所有逾時設定為無限,否則任何一個環節設定不當,都會導致莫名執行中斷 4. 多個後端模組(MySQL、Memcached、HTTP介面),為了防止單個介面效能太差,導致整個前面擷取資料太緩慢,
Time of Update: 2018-12-08
其實我們可以利用array_filter函數輕鬆去掉多維空值,而數組的下標沒有改變,下面是舉例用法: <?php $array = array( 0 => '滔哥', 1 => false, 2 => 1, 3 => null, 4 => '', 5 => 'http://www.jb51.net', 6 => '0' ); print_r(array_filter($array)); ?> 上面代碼輸出結果為: Array ( [0] =&
Time of Update: 2018-12-08
環境:PHP 5.2.14 CentOS 5.5 第一步:建立擴充骨架 cd php-5.2.14/ext ./ext_skel –extname=laiwenhui 第二步:修改編譯參數 cd php-5.2.14/ext/laiwenhui vi config.m4 去掉 PHP_ARG_ENABLE(laiwenhui, whether to enable laiwenhui support, [ --enable-laiwenhui Enable laiwenhui support])
Time of Update: 2018-12-08
很顯然file_exists是受了asp的影響,因為asp不但有fileExists還有folderExists,driverExists,那麼PHP中file_exists是什麼意思呢? PHP的 file_exists = is_dir + is_file 它既可以判斷檔案是否存在,又可以判斷目錄是否存在。但這樣一個全面的函數執行效率非常低,就像asp中request不指定是form,還是get,cookies,所以結論是: ◦如果要判斷目錄是否存在,請用獨立函數
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php /* UTF-8中文字元截斷程式 */ $str = "123這是測試字串"; $str1 = "()()"; echo subUTF8str($str,0,3)."<br>"; echo subUTF8str($str,0,4)."<br>"; echo subUTF8str($str1,0,4)."<br>"; echo subUTF8str($str1,0,10)."<br>"; function
Time of Update: 2018-12-08
點擊這裡下載源檔案複製代碼 代碼如下:function Pinyin($_String, $_Code='gb2312') { $_DataKey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha".
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php /** * Mysqli類 */ class db_mysqli { protected $mysqli; protected $sql; protected $rs; protected $query_num = 0; protected $fetch_mode = MYSQLI_ASSOC; protected $cache_dir = './cache/'; protected $cache_time = 1800; public function _
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php $start=$_GET['s']; $end=$_GET['e']; $requests = array(); for ($index = $start; $index < $end; $index++) { $url="http://www.essort.com/amfphp/services/curl/loadTest.php?uid=$index"; $requests[]=$url; } $main = curl_multi_init();
Time of Update: 2018-12-08
原廠模式 單元素模式 觀察者模式 命令鏈模式 策略模式 複製代碼 代碼如下:class people { private $name = ''; private $user = null; private function __constract($name){/*此處private定義輔助實現 單元素模式*/ $this->name = $name; } public static function instance($name){/*此方法實現 原廠模式*/ static
Time of Update: 2018-12-08
.htpasswd 檔案樣本: user1:{SHA}kGPaD671VNU0OU5lqLiN/h6Q6ac= user2:{SHA}npMqPEX3kPQTo+x/+ZckHDrIcQI= user3:{SHA}q1Fh2LTUjjkncp11m0M9WUH5Zrw= 複製代碼 代碼如下:class Htpasswd { private $file = ''; private $salt = 'AynlJ2H.74VEfI^BZElc-Vb6G0ezE9a55-Wj'; private
Time of Update: 2018-12-08
從5.2版本開始,PHP原生提供json_encode()和json_decode()函數,前者用於編碼,後者用於解碼。 一、json_encode() 該函數主要用來將數組和對象,轉換為json格式。先看一個數群組轉換的例子: $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); 結果為 {"a":1,"b":2,"c":3,"d":4,"e":5}
Time of Update: 2018-12-08
最近在做一個項目,遇到AJAX中文亂碼問題,經過一個下午的努力終於完美解決,現將心得寫下來,希望對那些還困繞在這個問題而頭痛不已的人們有所協助。 眾所周知,使用AJAX傳送和接收中文參數時,如果不在用戶端和伺服器做相應的處理就會出現亂碼問題,在網上相應的文章也不少,但是有的情況下很難從中找到符合自己理想的答案,我今天就是在網上找了很多,但是都差不多,講ASP和JSP的比較多(我是用的PHP),所以到最後都沒找到自己滿意的答案。
Time of Update: 2018-12-08
但當您使用的資料庫與 Web
Time of Update: 2018-12-08
php的內建函數exec,system都可以調用系統命令(shell命令),當然還有passthru,escapeshellcmd等函數。 在很多時候利用php的exec,system等函數調用系統命令可以協助我們更好更快的完成工作。比如前二天筆者在批量處理.rar檔案時exec就幫我了大忙了。 今天整理一下常用的調用系統函數發出來和大家分享經驗。 注意:要想使用這二個函數php.ini中的安全模式必須關閉,要不然為了安全起見php是不讓調用系統命令的。 先看一下php手冊對這二個函數的解釋:
Time of Update: 2018-12-08
本文將探討兩種具體的實現方法, 並對不同的方法做簡單的效能對比. 1. 經典cURL並發機制及其存在的問題 經典的cURL實現機制在網上很容易找到, 比如參考PHP線上手冊的如下實現方式: 複製代碼 代碼如下:function classic_curl($urls, $delay) { $queue = curl_multi_init(); $map = array(); foreach ($urls as $url) { // create cURL resources $ch = curl_
Time of Update: 2018-12-08
參考型別(Reference)在許多電腦語言中都被使用,而且是作為一個非常強大而實用的特性存在。它有類似指標(Pointer)的實現,卻又有不同於指標的表現。例如C++的引用,可以讓不同變數指向同一個對象,同時又保有直接使用dot來擷取對象成員,不用繁瑣的使用dereference運算子(*)和Pointer to
Time of Update: 2018-12-08
複製代碼 代碼如下:$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 的值, 就是改變 $
Time of Update: 2018-12-08
1.可以直接用php的內建函數array_intersect() array array_intersect ( array $array1 , array $array2 [, array $ ... ] ) array_intersect() 返回一個數組,該數組包含了所有在 array1 中也同時出現在所有其它參數數組中的值。注意鍵名保留不變。 代碼: 複製代碼 代碼如下:<?php $array1 = array("a" => "green", "red", "blue");
Time of Update: 2018-12-08
for 迴圈是 PHP 中最複雜的迴圈結構。它的行為和 C 語言的相似。 for 迴圈的文法是: for (expr1; expr2; expr3) statement 第一個運算式(expr1)在迴圈開始前無條件求值一次。 expr2 在每次迴圈開始前求值。如果值為 TRUE,則繼續迴圈,執行嵌套的迴圈語句。如果值為 FALSE,則終止迴圈。 expr3 在每次迴圈之後被求值(執行)。 每個運算式都可以為空白。expr2 為空白意味著將無限迴圈下去(和 C 一樣,PHP 認為其值為 TRUE)
Time of Update: 2018-12-08
瞭解crypt() 只要有一點使用非Windows平台經驗的讀者都可能對crypt()相當熟悉,這一函數完成被稱作單向加密的功能,它可以加密一些明碼,但不能反過來將密碼重新轉換為原來的明碼。crypt()函數定義如下。 string crypt (string input_string [, string salt])