Time of Update: 2017-01-18
為什麼需要進程鎖?主要作用就是防止你重複執行同一程式,主要用在crontab中,當你設定了一個定時任務,然後每分鐘執行一次,如果不加進程鎖的話,之前的進程沒有執行完的情況下。每分鐘都會有新的進程產生了。加上進程鎖之後,每次定時任務執行的時候,就會去判斷之前的進程鎖是否存在,如果存在就不執行。1.單進程的情況的進程鎖實現 直接來個例子好了,寫個php指令碼, 就先命名為process.php吧,代碼如下:<?php$lock_file = dirname(__FILE__) . "/
Time of Update: 2017-01-18
本文執行個體講述了PHP簡單實現上一頁下一頁功能。分享給大家供大家參考,具體如下:思路整理:現在好多人用id的增1和減1實現上一篇和下一篇,但是難道文章ID不會斷了嗎?所以你要知道上個ID和個ID是多少就OK了。那怎麼解決這個問題呢,很簡單!例子:假如這篇文章的ID200<a href="?action=up&id=200">上一篇</a><a
Time of Update: 2017-01-18
本文執行個體講述了PHP自訂函數格式化json資料的方法。分享給大家供大家參考,具體如下:<?php /** * Formats a JSON string for pretty printing * * @param string $json The JSON to make pretty * @param bool $html Insert nonbreaking spaces and <br />s for tabs and
Time of Update: 2017-01-18
本文執行個體講述了PHP實現對二維數組某個鍵排序的方法。分享給大家供大家參考,具體如下:/** * 對查詢結果集進行排序 * @access public * @param array $list 查詢結果 * @param string $field 排序的欄位名 * @param string $sortby 排序類型 (asc正向排序 desc逆向排序 nat自然排序) * @return array */ function list_sort_by($list, $field,
Time of Update: 2017-01-18
本文執行個體講述了php+ajax實現帶進度條的上傳圖片功能。分享給大家供大家參考,具體如下:運行效果圖如下:代碼如下:<?phpif(isset($_FILES["FileInput"]) && $_FILES["FileInput"]["error"]== UPLOAD_ERR_OK){ ############ Edit settings ############## $UploadDirectory =
Time of Update: 2017-01-18
本文執行個體講述了PHP自訂函數實現格式化秒的方法。分享給大家供大家參考,具體如下:function vtime($time) { $output = ''; foreach (array(86400 => '天', 3600 => '小時', 60 => '分', 1 => '秒') as $key => $value) { if ($time >= $key) $output .= floor($time/$key) . $value; $
Time of Update: 2017-01-18
本文執行個體總結了PHP經典演算法。分享給大家供大家參考,具體如下:1、首先來畫個菱形玩玩,很多人學C時在書上都畫過,咱們用PHP畫下,畫了一半。思路:多少行for一次,然後在裡面空格和星號for一次。<?phpfor($i=0;$i<=3;$i++){ echo str_repeat(" ",3-$i); echo str_repeat("*",$i*2+1); echo
Time of Update: 2017-01-18
一、單例模式簡介簡單的說,一個對象(在學習設計模式之前,需要比較瞭解物件導向思想)只負責一個特定的任務;二、為什麼要使用PHP單例模式? 1、php的應用主要在於資料庫應用, 所以一個應用中會存在大量的資料庫操作, 使用單例模式, 則可以避免大量的new 操作消耗的資源。 2、如果系統中需要有一個類來全域控制某些配置資訊, 那麼使用單例模式可以很方便的實現.
Time of Update: 2017-01-18
本文執行個體講述了PHP入門教程之使用Mysqli操作資料庫的方法。分享給大家供大家參考,具體如下:Demo1.php<?php //使用 mysqli 對象操作資料庫 //建立 mysqli 對象(資源控制代碼) $_mysqli = new mysqli(); //串連資料庫 1.主機名稱(ip) 2.賬戶 3.密碼 4.資料庫 //mysqli_connect 函數 == $_mysqli -> connect(); $_mysqli ->
Time of Update: 2017-01-18
本文執行個體講述了PHP物件導向的特性。分享給大家供大家參考,具體如下:Demo1.php<?php header('Content-Type:text/html; charset=utf-8;'); //建立一個電腦類 class Computer { //什麼叫做類內,就是建立類的花括弧內的範圍叫做類內,其他地方則類外。 //public 是對欄位的公有化,這個欄位類外即可訪問,賦值和取值 public $_name = '聯想'; }
Time of Update: 2017-01-18
本文執行個體講述了PHP物件導向基本概念。分享給大家供大家參考,具體如下:Demo1.php<?php //怎樣去建立一個類 格式:修飾符 class 類名{} //我們去建立一個電腦的類,這類可以建立出對象(生產出電腦) class Computer { //類名第一個字母大寫 } //建立一台電腦出來,也就是對象的聲明 //格式:變數 = new 類名(); //new Compuer() 表示執行個體化的過程(意思是建立一個對象) //$compuer1 =
Time of Update: 2017-01-18
先介紹一下需求背景:發票方式:0=捐贈(不要問我為什麼,曆史原因)1=對中寄送2=索取3=電子發票現在要對使用者提交的資料進行檢測:php;auto-links:false;">if(!in_array($_POST['invoice_action'], array(0,1,2,3))){ throw new Exception('請選擇正確的發票方式'); }
Time of Update: 2017-01-18
前言array_rand() 函數從數組中隨機選出一個或多個元素,並返回。從一個數組中隨機取出n個值,用array_rand()可以輕易的實現,當面對大數組的時候,我們會擔心他的效率、效能問題。我測試了一下,當在一個大小為一萬的數組中隨機取出20個值,即array_rand($arr, 20)的時候,程式只花費了0.005s左右,效率非常高。平時基本上都不會遇到這麼大的數組吧,所以我們不必擔心array_rand效率問題了。同時,我用了另外一種用隨機數的方法。$arr = array(1,2,3
Time of Update: 2017-01-18
本文執行個體講述了PHP上傳檔案的方法。分享給大家供大家參考,具體如下:Demo1.php<form enctype="multipart/form-data" action="Demo2.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="2000000" /> 上傳檔案: <input type="file" name="userfile" />
Time of Update: 2017-01-18
本文執行個體講述了PHP會話控制技巧。分享給大家供大家參考,具體如下:Demo1.php<form method="get" action="Demo2.php"> 姓名:<input type="text" name="username" /> <br /> <input type="submit" value="提交" /></form>Demo2.php<?php //echo
Time of Update: 2017-01-18
本文執行個體講述了PHP表單與驗證。分享給大家供大家參考,具體如下:Demo1.php<?php ob_start(); //重新導向一個 URL //header() //header('Location:Demo2.php'); //上面這句話可以自動跳轉到你所想要的頁面。 //header('Location:http://www.baidu.com'); //上面這句話自動跳轉到百度上面去。 echo 'baidu.com';
Time of Update: 2017-01-18
本文執行個體講述了PHP日期與時間操作技巧。分享給大家供大家參考,具體如下:Demo1.php<?php //驗證時間 //checkdate() 1.月份 2.日 3.年 //checkdate() 判斷這個日期是否是合法的日期 //不合法的日期,試一試 if(checkdate(7,16,2010)){ echo '這個日期是合法有效'; }else{ echo '這個日期是非法的。'; }?>Demo2.php<?php //date --
Time of Update: 2017-01-18
本文執行個體總結了PHP字串處理技巧。分享給大家供大家參考,具體如下:Demo1.php<?php //原始碼是文本形式,頁面顯示是 web 形式 $str = ' PHP '; //清理一下兩邊的空格 ltrim 只清理左,rtrim只清理右邊 echo ltrim($str); echo '<br/>'; echo rtrim($str); echo '<br/>'; //兩邊都清理 echo trim($str);
Time of Update: 2017-01-18
前幾天東政同學反饋說Linode伺服器快卡死了,今天有時間排查了一下具體原因,最終原因稍微有點悲壯:file_get_contents沒有設定逾時時間,加上我用的php5.2關於curl的代碼有個bug,於是導致PHP進程進入死迴圈。今天下午又發現系統負載很高,於是上去看了一下,發現一大坨PHP進程沒有退出,佔用了很多CPU,如圖:問題進程:後面啟動並執行指令碼是我的RSS定時更新任務,看來PHP代碼什麼地方有問題,於是strace -p 14043看了一下:select(5, [4], [4]
Time of Update: 2017-01-18
直接上代碼,imgzip($src,$newwid,$newhei)這個函數帶進去的分別是原圖片、縮放要求的寬度、縮放的長度。代碼都備忘了,不懂可以留言哈哈<?php //壓縮圖片 縮圖$src= "xiezheng.jpg";$newwid=640;$newhei= 480;function imgzip($src,$newwid,$newhei){ $imgInfo = getimagesize($src); $imgType =