頁面跳轉可能是由於使用者單擊鏈結、按鈕等觸發的,也可能是系統自動產生的。頁面自動跳轉在web開發中經常用到,而且根據需求可以採用不同的跳轉方式,比如提示操作資訊後延時跳轉等, 本文總結了web開發中常見的幾種頁面跳轉方法。
當然,實際開發中我們可以把後面兩種方式整合到php中去,便於適用各種跳轉需求。
當我們要將乙個龐大的資料進行編號時,而編號有位數限制,比如5位的車牌號、10位的某證件號碼、訂單流水號、短**等等,我們可以使用36進製計算出符合位數的不重複的編號。
我們將0-z(0123456789abcdefghijklmnopqrstuvwxyz)分別代表數值0-35,如字母z代表35。這樣的話我要得到乙個5位的編號,最大資訊量就是36的5次方了,36^5 = 60466176,即最大的5位編號相當於10進製的數字:60466176。
本文中為了做演示,我們假定某俱樂部發放一批10位的會員卡號,會員卡號由3位城市編號+5位卡號編碼+2位校驗碼組成。城市編號用區號表示,如755代表深圳,5位卡編號則由36進製的卡編號組成,後面兩位校驗碼則是通過一定的演算法生成的,校驗碼的用處是可以驗證卡號的合法性。這樣的話,我們生成的10位卡號相當於最大能滿足6000多萬會員卡號,並且是不重複唯一的卡號。
php我們使用php進行進製轉換,10進製轉36進製。
class code
} if (count($arr) < $format)
$arr = array_pad($arr, $format, $dics[0]);
return implode('', array_reverse($arr));
} public function decodeid($ids)
], bcpow($dnum, $i, 0), 0), $v, 0);
} return $v;
} }
我們定義code類,先定義密碼字典,即0-z分別對應的數值,方法encodeid($int, $format)中引數$int表示數字,$format表示位數長度,比方encodeid(123456789,5)表示將數字123456789轉換成5位的36進製編號,而方法decodeid($ids)用於將36進製的編號轉換成10進製的編號。
我們可以這樣來生成卡號:
$code = new code();
$card_no = $code->encodeid(888888,5);
如上,我們就可以得到乙個5位的卡編號,它實際代表著卡號是888888(6個8)的會員編號,而實際進行轉換後是5位編號:0j1vc。
接著,我們將城市編號和校驗碼加上,城市編號是已經定義好的,校驗碼則通過一定的演算法取得,本例中,我們使用簡單的演算法:將前三位城市編號和五位卡編號進行md5加密,然後取md5值的前2位作為校驗碼,這樣就得到了編號後面的兩位校驗碼。
$card_pre = '755';
$card_vc = substr(md5($card_pre.$card_no),0,2);
$card_vc = strtoupper($card_vc);
echo $card_pre.$card_no.$card_vc;
實際應用中,可以通過資料庫得到10進製的編號,保證編號唯一,再將上述**組合,最終生成乙個10位的不重複的會員卡號。
web開發(三)之頁面跳轉的問題
jsp 跳轉方式大約有三種 1.response.sendredirect newurl 此語句前不允許有out.flush 如果有,會有異常 跳轉後瀏覽器位址列變化 如果要跳到不同主機下,跳轉後,此語句後面的語句會繼續執行,如同新開了執行緒,但是對response的操作已經無意義了 如果要跳到相同...
js中實現頁面跳轉的方法
window.location和window.open的區別 window.location 跳轉後有後退功能 window.location.replace 跳轉後沒有後退功能 window.open 要新的視窗開啟鏈結 本人親自測試 window.location.replace 例如index...
js中跳轉頁面的方法
location.href的基本用法js中的location.href的作用是什麼?有幾種用法?區別是什麼?主要用於跳轉頁面 1.self.location.href url 1.僅在本頁面開啟url 2.window.location.href url 2.當前頁面開啟url頁面 3.this.l...