Time of Update: 2016-07-13
當我們要將一個龐大的資料進行編號時,而編號有位元限制,比如5位的車牌號、10位的某證件號碼、訂單流水號、短網址等等,我們可以使用36進位計算出符合位元的不重複的編號。我們將0-Z(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ)分別代表數值0-35,如字母Z代表35。這樣的話我要得到一個5位的編號,最大資訊量就是36的5次方了,36^5 =
Time of Update: 2016-07-13
查看 POP3/SMTP 協議的時候想嘗試一下自己寫一個操作類,核心沒啥,就是使用 fsockopen ,然後寫入/接收資料,只實現了最核心的部分功能,當作是學習 Socket 操作的練手。其中參考了 RFC 2449和一個國外的簡單Web郵件系統 Uebimiau 的部分代碼,不過絕對沒有抄他滴,HOHO,絕對原創。複製代碼 代碼如下:class SocketPOPClient { var $strMessage = ''; var $intErrorNum
Time of Update: 2016-07-13
function getWeiboData(){ $count = 15; // 參數source後面輸入你的授權號 $url = "https://api.weibo.com/2/statuses/home_timeline.json?source=123456789&count=".$count."&page=1"; echo $url.''; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //
Time of Update: 2016-07-13
1.建立了一個名為sitemap的控制器複製代碼 代碼如下:if (!defined('BASEPATH')) exit ('No direct script access allowed');class Sitemap extends CI_Controller{ public function __construct() { parent::__construct(); $this->load->model('sitemapxml'); } function index(){
Time of Update: 2016-07-13
有25幅作品拿去投票,一次投票需要選16幅,單個作品一次投票只能選擇一次。前面有個程式員捅了漏子,忘了把投票入庫,有200個使用者產生的投票序列為空白。那麼你會如何填補這個漏子?當然向上級反映情況。但是我們這裡討論的是技術,就是需要產生1-25之間的16個不重複的隨機數,去填補。具體怎麼設計函數呢?將隨機數存入數組,再在數組中去除重複的值,即可產生一定數量的不重複隨機數。程式如下:複製代碼 代碼如下:/** array unique_rand( int $min, int $max, int $
Time of Update: 2016-07-13
看手冊說define定義的常量只允許:僅允許標量和 null。標量的類型是 integer, float,string 或者 boolean。 也能夠定義常量值的類型為 resource ,但並不推薦這麼做,可能會導致未知狀況的發生。今天閱讀php源碼,發現define的第二個參數其實也可以是一個對象。先貼一段樣本:複製代碼 代碼如下:class A { public function __toString() { return 'bar'; }}$a = new A(
Time of Update: 2016-07-13
1. isset功能:判斷變數是否被初始化說明:它並不會判斷變數是否為空白,並且可以用來判斷數組中元素是否被定義過注意:當使用isset來判斷數組元素是否被初始化過時,它的效率比array_key_exists高4倍左右複製代碼 代碼如下:$a = '';$a['c'] = '';if (!isset($a)) echo '$a 未被初始化' . "";if (!isset($b)) echo '$b 未被初始化' . "";if (isset($a['c'])) echo '$a
Time of Update: 2016-07-13
可以修改代碼,添加些判斷:複製代碼 代碼如下: if(empty($_POST['name'])){ echo "俗話說的好,雁過留聲人過留名"; } elseif(empty($_POST['comment'])){ echo "矮油,多說幾句吧~"; } else{ $sql = "INSERT INTO myblog_comments(blog_id, dateposted, name, comment) VALUES(" . $validentry . ", NOW(), '"
Time of Update: 2016-07-13
在這一章節裡, 我們來瞭解一個不太常用但功能強大的 PHP 特性: FILTERS, 該擴充可以用來驗證(validation)和錯誤修正(sanitization) 當資料來源含有未知或不確定資料時,將變得非常有用, 最多是用來處理由客戶從 HTML 表單(form)提交的資料 該擴充含有兩個主要的過濾類型: 驗證(validation)和錯誤修正(sanitization) 驗證(validation)主要用來檢查資料是不是符合特定條件, 例如: 當傳入
Time of Update: 2016-07-13
這裡來看下效果: 現在讓我們來看下 PHP 代碼複製代碼 代碼如下: session_start();function random($len) { $srcstr = "1a2s3d4f5g6hj8k9qwertyupzxcvbnm"; mt_srand(); $strs = ""; for ($i = 0; $i $strs .= $srcstr[mt_rand(0, 30)]; } return $strs;}
Time of Update: 2016-07-13
如何在PHP上顯示JFreechart?可能大部分都遇到這種情況,在JSP上的servlet能完全的顯示出JFreechart畫的統計圖,但是和其他語言混合運用就不能顯示了 我現在也遇到這個問題,想了半個小時終於弄明白了,實現的過程還是很簡單的。(個人經驗總結而已) 解決的思路: 1.先將JFreechart產生的圖片儲存在網頁伺服器上。 2.然後在JSP上用標籤顯示 3.通過JS將JSP匯入PHP頁面 這樣就實現了。 部分getColumnChart.jsp源碼: 複製代碼 代碼如下:
Time of Update: 2016-07-13
1.php傳值到javascript php傳值給javascript的方式:需要在標籤外面打上引號 document.getElementById("titor"+a+b).innerHTML=""; 註:實際上原先本人理解有錯,php為動態顯示語言。實際上為顯示相關文本的echo裡面,因為原來的不帶引號,所以加引號是自然的 2.時間戳記轉換 strtotime可以把mysql裡面的datetime轉換為時間戳記; 3.關於資料的四捨五入
Time of Update: 2016-07-13
看代碼就會的小例子:php合并js請求複製代碼 代碼如下://頁面儲存為js.php//前台請求範例http://localhost/js.php?f=1,2//請求1.js,2.js兩個檔案header("Content-Type:application/x-javascript");header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");header("Cache-Control: max-age=".(86400*30))
Time of Update: 2016-07-13
使用php類比我們常用的DOS命令ping命令的方法,這裡主要用到的是php的內建函數exec來調用系統的ping命令,從而實現ping命令功能的。複製代碼 代碼如下:$to_ping='www.phpernote.com';$count=2;$psize=66;echo "正在執行php ping命令,請等待...\n";flush();while(1){ echo ""; exec("ping -c $count -s $psize $to_ping", $list); for($i=0;$
Time of Update: 2016-07-13
下面附上import的幾個用法介紹1、用法一import('@.Test.Translate');@,表示項目根目錄。假定根目錄是:App/匯入類庫的路徑是:App/Lib/Test/Translate.class.php結論:import('@')是相對於項目目錄的Lib目錄而言2、用法二import('Think.Test.Translate');Think,表示系統根目錄。既是:./ThinkPHP/匯入類庫的路徑是:./ThinkPHP/Lib/Test/Translate.class.
Time of Update: 2016-07-13
緣起:最近做了一個電商平台與網銀整合的小東西,程式是開源的 Ecmall的,網銀的介面也很規範,給出的文檔很全,唯一的小問題是,網銀使用的簽名和驗簽的lib是只有java和c的,對java還熟悉一些,所以選擇了使用java作為簽名和驗簽的介面。方法:網上關於php與java互動的資料其實挺多的。總體來說其實也是這麼幾種方法:•PHP直接通過exec或者system之類的命令調用命令列,然後以java Hello
Time of Update: 2016-07-13
對於日IP不高或者說並發數不是很大的應用,一般不用考慮這些!用一般的檔案操作方法完全沒有問題。但如果並發高,在我們對檔案進行讀寫操作時,很有可能多個進程對進一檔案進行操作,如果這時不對檔案的訪問進行相應的獨佔,就容易造成資料丟失。例如:一個線上聊天室(這裡假定把聊天內容寫入檔案),在同一時刻,使用者A和使用者B都要操作資料儲存檔案,首先是A開啟了檔案,然後更新裡面的資料,但這裡B也正好也開啟了同一個檔案,也準備更新裡面的資料。當A把寫好的檔案儲存時,這裡其實B已經開啟了檔案。但當B再把檔案儲存回
Time of Update: 2016-07-13
使用:傳入一個網址,如 http://jb51.net/article/1.html ,返回1,代表已經收錄;返回0,代表百度沒有收錄。複製代碼 代碼如下:header("Content-type: text/html; charset=utf-8");function checkBaidu($url) { $url = 'http://www.baidu.com/s?wd=' . $url; $curl = curl_init(); curl_setopt($curl,
Time of Update: 2016-07-13
在PHP變成中,include()與require()的功能相同,include(include_once) 與 require(require_once)都是把把包含的檔案代碼讀入到指定位置來,但是二者再用法上有區別:(include()是有條件包含函數,而require()則是無條件包含函數) 1, 使用方式不同(1) require 的使用方法如 require("requireFile.php"); 。這個函式通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入
Time of Update: 2016-07-13
複製代碼 代碼如下:if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/pjpeg"))&& ($_FILES["file"]["size"] { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " .