Time of Update: 2016-06-23
一直糾結PHP中統計數組長度函數count(),還有strlen是怎麼的,它的效率是O(1)還是O(n)呢?最近看PHP源碼,總結了下。分析如下: zend給php的所有變數都用共用體的方式去儲存,而字串的儲存和數組的儲存也是不同的,數組採用的是hash表的方式去儲存。PHP的變數共用體描述如下 /* * zval */ typedef struct _zval_struct zval; typedef union _zvalue_value { long lval; /*
Time of Update: 2016-06-23
$f = file('words.txt');$words = array();foreach ($f as $w) {$words[] = preg_quote(trim($w), '/');}$text = file_get_contents('text.txt');$start = microtime(true);$reg = '/' . implode('|', $words) . '/S';preg_match_all($reg, $text, $m);$result = array(
Time of Update: 2016-06-23
$id = date('YmdHis') . mt_rand(1000, 9999); @unlink('pages/showbbs-' . $bbsId .'.html'); if ($adminDB->executeSQL("insert into tb_reply(id, content, addtime, bbs_id) values('$id', '".$_POST['content']."', '".date('Y-m-d H:i:s')."', '$bbsId')"
Time of Update: 2016-06-23
首先需要確定系統中安裝了gcc編譯器,合適版本的bison等,下面是從源碼編譯安裝PHP需要執行的基本命令: # cd php-src# ./buildconf# ./configure --enable-debug --enable-maintainer-zts --enable-cli# make# make install 構建一個基本的擴充骨架 在PHP擴充開發時,使用ext_skel完成擴充的結構骨架建立。 $ ./ext_skel./ext_skel
Time of Update: 2016-06-23
最近遇到一個項目需求是文字轉語音功能,請問下各位大神,php裡有沒有這樣的功能 PC端。 回複討論(解決方案) PHP沒有 你得找第三方介面 這裡 有個解決方案 http://www.hcicloud.com/products/show/forward/tts 這裡 有個解決方案 http://www.hcicloud.com/products/show/forward/tts
Time of Update: 2016-06-23
寫項目時用到目前時間,用time()擷取到的時間戳記經過date()函數轉化的時間與當時時間差了6個小時,修改php.ini檔案,如下: 發現並沒有成功修改時間,最後開啟httpd-conf,修改phptimezone,如下: 結果就可以了,原來只在php.ini中修改是沒用的,要在apache的設定檔中修改才行。 最後查看phpinfo,看到defaulttimezone一項是PRC才算可以了。 著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Time of Update: 2016-06-23
在前兩篇單例模式和原廠模式後,終於迎來了最後一個基礎的設計模式--註冊樹模式。 什麼是註冊樹模式? 註冊樹模式當然也叫註冊模式,註冊器模式。之所以我在這裡矯情一下它的名稱,是因為我感覺註冊樹這個名稱更容易讓人理解。像前兩篇一樣,我們這篇依舊是從名字入手。註冊樹模式通過將對象執行個體註冊到一棵全域的對象樹上,需要的時候從對象樹上採摘的模式設計方法。
Time of Update: 2016-06-23
算術運算子 運算子 描述 + - * / 除法運算子總是返回浮點數。只有在下列情況例外:兩個運算元都是整數(或字串轉換成的整數)並且正好能整除,這時它返回一個整數。 % 模數運算子的運算元在運算之前都會轉換成整數(除去小數部分)。模數運算子 % 的結果和被除數的符號(加號或減號)相同。即 a b 的結果和 $
Time of Update: 2016-06-23
if if () { statement;} else if { statement;} elseif { statement;} else { statement;} else if和elseif句法分析的含義有少許區別,但是底線是兩者會產生完全一樣的行為 迴圈 while () { statement;}do { statement;} while();for (;;) { statement;}foreach (as) {
Time of Update: 2016-06-23
1.擷取指定目錄下所有檔案,包括子檔案夾下檔案,使用到遞迴 function get_all_file($dir){$files = scandir($dir);foreach($files as $file){if($file == '.' || $file == '..') continue;if(is_file($dir.'/'.$file)){$res[] = $file;continue;}foreach(get_all_file($dir.'/'.$file) as $ff){
Time of Update: 2016-06-23
XHProf是facebook 開發的一個測試php效能的擴充,本文記錄了在PHP應用中使用XHProf對PHP進行效能最佳化,尋找效能瓶頸的方法。 安裝Xhprof擴充 $ wget http://pecl.php.net/get/xhprof-0.9.4.tgz$ tar -zxvf xhprof-0.9.4.tgz $ cd xhprof-0.9.4$ cd extension/$ phpize$ ./configure$ make$ sudo make install 修改php.
Time of Update: 2016-06-23
1. Docker Docker的官方定義是: Docker allows you to package an application with all of its dependencies into a standardized unit for software development. -- https://www.docker.com/whatisdocker 毫無疑問的是,Docker解決了應用部署上一個巨大的問題: 客戶: 安裝好了,用不了。 發行者:我的機器上沒問題。
Time of Update: 2016-06-23
分區是在大型網站資料庫設計中經常會用到的解決方案,本文嘗試給出一種用PHP實現的設計方案,shard_id的結構是64bit,10bit sharid系統+10bit為類型id+10子類型id+34bit自增id。關於分區設計的更多知識請參考我的其它文章。 database = load( 'database' ); } function get_shard_id( $table_name, $cate_id, $subcate_id ) {
Time of Update: 2016-06-23
概述 函數名和 PHP 中的其它標識符命名規則相同。有效函數名以字母或底線打頭,後面跟字母,數字或底線 函數名是大小寫無關的,不過在調用函數的時候,使用其在定義時相同的形式是個好習慣 PHP 不支援函數重載,也不可能取消定義或者重定義已聲明的函數 函數的定義 當一個函數是有條件被定義時,必須在調用函數之前定義 函數中的函數 函數的參數 值傳遞與引用傳遞
Time of Update: 2016-06-23
學習寫代碼的時候發現修改資料的時候如果mysql裡邊沒有的 用update修改的會也會返回執行成功 這個時候該怎麼辦 要先用sql查詢判斷資料是否存在嗎? 回複討論(解決方案) 執行更新後,使用 mysql_affected_rows 會返回改變了記錄的條數。 可通過這個來判斷更新是否有執行。 執行更新後,使用 mysql_affected_rows 會返回改變了記錄的條數。 可通過這個來判斷更新是否有執行。 大俠可以具體講一下用什麼代碼嗎
Time of Update: 2016-06-23
// 全部產品 // 串連資料庫 require_once 'conn.php'; $sql="select * from tb_user"; $result=mysql_query($sql); $num=mysql_num_rows($result); $pagesize=3;//設定每頁的記錄數 $pages=ceil($num/$pagesize);//取得總頁數 if($pages
Time of Update: 2016-06-23
addAdmin(添加管理員) 流程: addAdmin.php(視圖介面)[傳遞act的值] ---> doAdminAction.php(總處理) 通過include.php包含了所有函數--->根據傳過來的act在admin.inc.php中找到合適的函數 ---> 調用mysql.func.php中的insert()插入資料庫 一個表單,action=”doAdminAction.php?act=addAdmin”,傳到addAdmin act=
Time of Update: 2016-06-23
可供PHP開發人員選擇的架構、庫或工具非常多,這也使得Web開發人員的工作變得越來越容易。那麼今天,小編為大家展示11個最受Web開發人員喜愛的PHP架構。這些PHP架構許多功能非常巧妙,能夠協助開發人員建立令人驚歎的響應式設計的網站。希望這些神奇的PHP開發架構能夠對你有所協助,讓我們一起來瞭解一下吧! Silex Symfony團隊出品了PHP 5.3微架構,可大量複用Symfony 2組件。Silex是Symfony
Time of Update: 2016-06-23
我有一個數組,結構是這樣的: $json = '[{"id":27,"children":[{"id":28,"children":[{"id":30},{"id":29}]}]},{"id":31},{"id":32}]';$arry = json_decode($json,true); 也有可能是這樣的結構: $json =
Time of Update: 2016-06-23
interface Observable{ function attach(Observer $observer); function detach(Observer $observer); function notify();}// ...login類class Login implements Observable{ private $observers; private $status = array(); const