本文目錄一覽:
- 1、js和php中的 16進位轉字元串問題,高手進,在線等!!!
- 2、js和php在同一個文件中相互獲取值的問題
- 3、php生成8位唯一字元串
- 4、php:如何生成隨機的唯一字母數字字元串
- 5、Javascript如何生成唯一的符合不影響url的字元串?
- 6、php js 把數組 轉化 成 字元串 傳參
js和php中的 16進位轉字元串問題,高手進,在線等!!!
function hex2bin(data){
var data = (data || ”) + ”;
var tmpStr = ”;
if(data.length % 2){
console console.warning(‘hex2bin(): Hexadecimal input string must have an even length’);
return false;
}
if(/[^\da-z]/ig.test(data)){
console console.warning(‘hex2bin(): Input string must be hexadecimal string’);
return false;
}
for(var i = 0, j = data.length; i j; i += 2){
tmpStr += ‘%’ + data[i] + data[i + 1];
}
return decodeURIComponent(tmpStr);
}
js和php在同一個文件中相互獲取值的問題
你好php是服務端腳本語言,js是瀏覽器端腳本語言,除非使用ajax進行數據提交否則,一但服務端生成好頁面傳到瀏覽器端後就不再參與瀏覽器端的「運算」,所以你想在同一個頁面中不重新進行請求就js和php相互獲取值是不現實的。
另:
你的代碼分析如下:
script
var linka;
linka=window.location.href;
/script
?php
$ch[0]=”scriptdocument.write(linka);/script”;
echo $ch[0].”br /”;
script
到這步為止,php獲得js的變數非常順利
下面接著
script
var k;
k=”?php echo $ch[0];?”;
alert(k);
/script
其實你的整個頁面都是php的,執行
$ch[0]=”scriptdocument.write(linka);/script”;
這一句的時候,php的$ch[0]僅僅只是被賦予了”scriptdocument.write(linka);/script”這個字元串,js代碼並沒有運行.php也並沒有獲得js的變數!獲得的只是字元串而已.
php生成8位唯一字元串
function get62($src, $length = 8){
$md5 = md5($src, true);
$pos = 0;
$res = “”;
while(strlen($res) $length ($bin = substr($md5, $pos, 4)) != “”){
$uint = sprintf(“%u” , unpack(“Nint”, $bin)[‘int’]);
$res .= decto62($uint);
$pos += 4;
}
return substr($res, 0, $length);
}
function decto62($src){
static $table = [];
$table = array_merge(range(0, 9), range(‘A’, “Z”), range(‘a’, “z”));
$arr62 = [];
$div = $src;
do{
$mod = $div % 62;
array_unshift($arr62, $table[$mod]);
$div = intval($div / 62);
}while($div != 0);
return implode(“”, $arr62);
}
var_dump(get62(“abc”));
php:如何生成隨機的唯一字母數字字元串
1. 自己寫代碼產生隨機的數字和字母組合,每產生1個去資料庫查詢該隨機碼是否已存在,如果已存在,則重新產生,直到不重複為止。
缺點:產生速度慢,還要查詢資料庫,當數據量大的時候,可能重複的機率會比較高,要查詢多次資料庫.
2. guid,該方法應該是用的比較多的。
優點:使用簡單方便,不用自己編寫額外的代碼
缺點:佔用資料庫空間相對較大,特別是根據guid查詢速度比較慢(畢竟是字元串)。
3. 主鍵+隨機碼的方式,我們產生的隨機碼保存到資料庫肯定會有個主鍵,用該主鍵+隨機字元來組合。產生步驟:
1) 先從id生成器中獲取id,比如是155.
2)填充成固定位數(比如8位)的字元串(不夠位數的左邊填0,超過位數直接使用該數字),得到:00000155
3)在每個數字後面隨機插入1個字母或其它非數字元號,得到:0A0F0R0Y0H1K5L5M
這樣就可以得到1個隨機的唯一的邀請碼了。
優點:使用也比較簡單,不用查詢資料庫。最大的優點是查詢的時候,可以根據邀請碼直接得到主鍵id,然後根據id去資料庫查詢(速度很快),再比較查詢出來的邀請碼和用戶提交的邀請碼是否一致。
缺點:需要使用id產生器,如果主鍵是資料庫自增長的就不太好用(需要先插入資料庫獲取id,再更新邀請碼)。
4. 有時候產品經理說,我要求邀請碼都是數字的。把方法3變通下就可以實現唯一的純數字隨機碼了。
1) 獲取id: 155
2) 轉換成8進位:233
3) 轉為字元串,並在後面加’9’字元:2339
4)在後面隨機產生若干個隨機數字字元:2003967524987
轉為8進位後就不會出現9這個字元,然後在後面加個’9’,這樣就能確定唯一性。最後在後面產生一些隨機數字就可以。
Javascript如何生成唯一的符合不影響url的字元串?
Javascript生成唯一字元串就是 guid:
全局唯一標識符(GUID,Globally Unique Identifier)也稱作 UUID(Universally Unique IDentifier) 。
GUID是一種由演算法生成的二進位長度為128位的數字標識符。GUID 的格式為「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」,其中的 x 是 0-9 或 a-f 範圍內的一個32位十六進位數。在理想情況下,任何計算機和計算機集群都不會生成兩個相同的GUID。
GUID 的總數達到了2^128(3.4×10^38)個,所以隨機生成兩個相同GUID的可能性非常小,但並不為0。GUID一詞有時也專指微軟對UUID標準的實現。
演算法實現:
function uuid() {
var s = [];
var hexDigits = “0123456789abcdef”;
for (var i = 0; i 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = “4”; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = “-“;
var uuid = s.join(“”);
return uuid;
}
php js 把數組 轉化 成 字元串 傳參
可以像樓下說的,你可以試試。
另外也可以直接這樣:
data:{personprice:arrprice}
總之對象,數組也可以直接傳。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/219839.html