並且在執行的過程中, 如果其中的某條執行失敗, 可以復原所有已更改的操作. 如果執行成功, 那麼這一系列操作都會永久有效. 事務很好的解決了在操作資料庫的時候不同步的問題. 同時, 通過事務去執行大資料量的時候, 執行效率可以提高很多很多. 在 PDO 中, 事務已經顯得非常簡單. 下面一個基本的例子, 示範了向 SQLite 資料庫插入 1000000 條資料, 並且在出錯的時候復原. 複製代碼 代碼如下: try { $conn = new
複製代碼 代碼如下: $t1 = explode(' ', microtime()); // ... 執行代碼 ... $t2 = explode(' ', microtime()); echo ($t2[1]-$t1[1]).'s '.($t2[0]-$t1[0]).'ms'; 其實稍微試一下, 就能發現這份代碼有個嚴重的問題. 雖然 t2 得到的時間肯定比 t1 大, 但不代表, 它的微秒數就一定比 t1 的微秒數大. 所以直接相減的話, ms 部分有可能得到的是負數. 因此,
PHP 版: 複製代碼 代碼如下: function format($size) { $sizetext = array(" B", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"); return round($size/pow(1024,($i=floor(log($size,1024)))),2).$sizetext[$i]; } C# 版: 複製代碼 代碼如下: public string formatSize(long
複製代碼 代碼如下: $a=1; $b=2; $t = array( array('a', 'string', $field['a']), // 名稱 if($a==$b){array('b','1')} ); print_r($t); exit; 1、由於數組篇幅較長。沒注意到 2、開發代碼沒及時清理緩衝。。。。悲劇就是從這裡開始 下面是正確的用法 $a==$b?array('sDesc','1'):array('sDesc','2') 複製代碼 代碼如下: $a=1; $b=2; $t =
複製代碼 代碼如下:$a=array('1','2','3','4','22'); $b=array('1','3','4','11','22','23'); f($a, $b, 5, 6, $t); print_r($t); function f(&$a, &$b, $n, $m, &$t){ $i=0;$j=0; while($i<$n && $j<$m){ if($a[$i]==$b[$j]){ echo $a[$i]." ";//交集 $t[]=$a[$i++]; $t[]=
問題描述在載入頁面的時候, 將游標快速定位到搜尋欄上, 待頁面載入完成, 搜尋欄進行初始化後會顯示搜尋提示. 此時輸入的任何內容將成為搜尋提示的一部分而不是搜尋索引鍵. 截圖如下: 導致原因搜尋欄的 JavaScript 初始化執行在 onload 的時候. 因為頁面圖片請求多, 完全載入需要 3 秒鐘左右, 並且搜尋欄的 tabindex 被設為 1, 搜尋優先的使用者很容易就能遇到. 以下是我根據自己的理解反編譯出來的 JS 代碼, 頁面在 onload 的時候將會執行
投放廣告的人都很關注他的廣告會放在哪個位置, 因為這可能影響點擊次數, 甚至是否在第一屏顯示. 就這個問題, 其實很容易解決, 只要隨機顯示廣告即可. 代碼如何?? 在這我推薦兩種隨機顯示廣告的處理辦法. 在後端處理 在後端排序好再輸出頁面. 將廣告節點用數組存放, 對數組進行隨機排序, 再輸出經過排序的數組. 參考代碼 (PHP) 如下: 複製代碼 代碼如下: // 用數組存放廣告列表 $ads = array('<a href="#"><img src="ad-125x12
中間遇到一個問題是提交的中文檔案名稱直接放到header裡在IE下會變成亂碼,解決方案是將檔案名稱先urlencode一下再放入header,如下。 複製代碼 代碼如下: <?php $file_name = urlencode($_REQUEST['filename']); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0,
我這麼想的: 遍曆一遍多維陣列,將所有的鍵建立索引產生一個一維數組; 每次通過鍵名去查這個鍵的上級數組及資料 OK,代碼如下 indexKey建立索引數組函數: 複製代碼 代碼如下: <?php /** * FILE_NAME : arr.php FILE_PATH : test/ * 在多維陣列中根據鍵名快速查詢其父鍵以及父索引值 * * @copyright Copyright (c) 2006-2010 mail:levi@cgfeel.com * @author Levi *
下面的方法是我對海量資料的處理方法進行了一個一般性的總結,當然這些方法可能並不能完全覆蓋所有的問題,但是這樣的一些方法也基本可以處理絕大多數遇到的問題。下面的一些問題基本直接來源於公司的面試筆試題目,方法不一定最優,如果你有更好的處理方法,歡迎與我討論。 1.Bloom filter 適用範圍:可以用來實現資料字典,進行資料的判重,或者集合求交集 基本原理及要點:
定義和用法 str_pad() 函數把字串填充為指定的長度。 文法 str_pad(string,length,pad_string,pad_type)參數 描述 string 必需。規定要填充的字串。 length 必需。規定新字串的長度。如果該值小於原始字串的長度,則不進行任何操作。 pad_string 可選。規定供填充使用的字串。預設是空白。 pad_type 可選。規定填充字串的那邊。 可能的值: STR_PAD_BOTH - 填充到字串的兩頭。如果不是偶數,則右側獲得額外的填充。
下面就來介紹一下資料庫抽象層PDO的使用: PDO(PHP Data Objects)是一個輕量級的PHP擴充,提供了一個資料訪問抽象層。還要就是PDO只能在PHP5.0以上版本使用。下面來介紹一下PDO常用的預定義常量:PDO::PARAM_BOOL (integer) 表示布林值資料型別PDO::PARAM_NULL (integer) 表示資料類型為NULL的SQLPDO::PARAM_INT (integer)
php cookies中刪除的一般賦值方法 cookie 常用於識別使用者。cookie 是伺服器留在使用者電腦中的小檔案。每當相同的電腦通過瀏覽器請求頁面時,它同時會發送 cookie。通過 php,您能夠建立並取回 cookie 的值 文法 複製代碼 代碼如下: setcookie(name, value, expire, path, domain); ** * 設定cookie * n 名稱 * c 值 * e 有效期間 0 預設 一個月 1 關閉立即失效 */ function
1:取得file對象 2:讀取2進位資料 3:類比http請求,把資料發送出去(這裡通常比較麻煩) 在forefox下使用 xmlhttprequest 對象的 sendasbinary 方法發送資料; 4:完美實現 遇到的問題 目前僅有 firefox 可以正確上傳檔案。(chrome也可以采google.gears上傳) 對於從firefox和chrome下讀取到的檔案資料好像不一樣(不知道是否是調試工具的原因) chrome以及其他進階瀏覽器沒有 sendasbinary 方法 只能使用
複製代碼 代碼如下: //安全過濾輸入[jb] function check_str($string, $isurl = false) { $string = preg_replace('/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F]/','',$string); $string = str_replace(array("\0","%00","\r"),'',$string); empty($isurl) && $string = preg_replace("/&(
複製代碼 代碼如下: function Files($path) { foreach(scandir($path) as $line) { if($line=='.'||$line=='..') continue; if(is_dir($path.'/'.$line)) Files($path.'/'.$line); else echo '<li>'.$path.'/'.$line.'</li>'; } } PHP遍曆檔案及檔案夾 加入給定檔案夾 C:\\Windows\
1.測試方法www.xxx.com/test.php?content_id=自己定義,如:44 複製代碼 代碼如下: $content_id = array();//1.建立一個數組 $content_id[] = $_GET['contentid']; //2.對接受到的ID插入到數組中去 if(isset($_COOKIE['content_id'])) //3.判定cookie是否存在,第一次不存在(如果存在的話) { $now_content = str_replace("\\", ""
複製代碼 代碼如下:$username = "zongzi"; echo substr_replace($username,'**','1','2'); 定義和用法substr_replace() 函數把字串的一部分替換為另一個字串。文法substr_replace(string,replacement,start,length)參數描述string必需。規定要檢查的字串。replacement必需。規定要插入的字串。start必需。規定在字串的何處開始替換。正數 - 在第 start
複製代碼 代碼如下: /*資料類型之間相互轉換 * 一種是強制轉換 * setType(變數,類型); //int,integer,float,double等等。 * 這個函數將原變數的類型改變,用var_dump();可以查看變數 * * 在賦值前使用(類型)的形式,不會改變原變數的類型 * $a=(int)"123abc"; * * $變數=intval(變數或值); * $變數=floatval(變數或值); * $變數=stringval(變數或值); * *
複製代碼 代碼如下: <?php define('CACHE_ROOT', dirname(__FILE__).'/cache'); //緩衝存放目錄 define('CACHE_TIME', 1800);//緩衝時間 單位秒 define('CACHE_FIX','.html'); $CacheName=md5($_SERVER['REQUEST_URI']).CACHE_FIX; //快取檔案名 $CacheDir=CACHE_ROOT.'/'.substr($CacheName,0,