php不重復字元串
㈠ 幾個有用的php字元串過濾,轉換函數
explode — 使用一個字元串分割另一個字元串
array explode ( string $delimiter , string $string [, int $limit ] )
此函數返回由字元串組成的數組,每個元素都是 string 的一個子串,它們被字元串 delimiter 作為邊界點分割出來。
<?php// 示例 1$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";$pieces = explode(" ", $pizza);echo $pieces[0]; // piece1echo $pieces[1]; // piece2 // 示例 2$data = "foo:*:1023:1000::/home/foo:/bin/sh";list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);echo $user; // fooecho $pass; // * ?>
㈡ 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',這樣就能確定唯一性。最後在後面產生一些隨機數字就可以。
㈢ php怎樣生成一個32位的隨機字元串
如用戶注冊生成隨機密碼,用戶重置密碼也需要生成一個隨機的密碼。隨機密碼也就是一串固定長度的字元串。下面介紹生成隨機字元串的三種基本方法:
㈣ php生成三個數字並且任意兩個不重復
<?php
$arr=array(1,2,3,4,5,6,7,8);
$str="";
for($i=0;$i<3;$i++){
$index=rand(0,count($arr)-1);
while(!isset($arr[$index])){
$index=rand(0,count($arr)-1);
}
$str.=$arr[$index];
unset($arr[$index]);
}
echo$str;
?>
//如果不是這個意思再補充提問,我繼續幫你弄
㈤ php 正則表達式,如何匹配必須包含某字元串和不包含某字元串
/^([\s\S](?<!怎麼))*?YY([\s\S](?<!怎麼))*?分組([\s\S](?<!怎麼))*?$/m
末尾的 m 修正符不能少。。
其實這個問題完全可以用 Split 先把字元串每一行分解出來,然後用 strpos 一一查找是否包含 YY,分組,怎麼 等字元串,用正則反而更不好做。。
上面的正則只能匹配"YY"在"分組"之前出現的字元串。。
㈥ 如何用phpfor循環生成5位,數字字母組合,永不不重復
如果你希望永不重復 建議採用 PHP GUID
GUID是什麼
GUID: 即Globally Unique Identifier(全球唯一標識符) 也稱作 UUID(Universally Unique IDentifier) 。 GUID是一個通過特定演算法產生的二進制長度為128位的數字標識符,用於指示產品的唯一性。GUID 主要用於在擁有多個節點、多台計算機的網路或系統中,分配必須具有唯一性的標識符。
PHP中並不提供GUID的內部實現。為此我們可以自己寫演算法實現。代碼片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}
㈦ PHP 字元串問題
要重復還是沒重復呢?
這個是輸出所有的小寫字母,不管是不是重復的,比如你輸入的字元串為aa,則輸出aa
<?php
function getLower($str){
$len = strlen($str);
$newstr = '';
$lower = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
for($i=0;$i<$len;$i++){
if(in_array($str[$i],$lower)){
$newstr .= $str[$i];
}
}
return $newstr;
}
$str = "youWant";//根據需要定義你的字元串
$str = getLower($str);//調用函數後得到的小寫字母的字元串
?>
這個是輸出不重復的
<?php
function getLower($str){
$len = strlen($str);
$newstr = array();
$lower = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
for($i=0;$i<$len;$i++){
if(in_array($str[$i],$lower)){
if(!in_array($str[$i],$newstr)){
$newstr[] = $str[$i];
}
}
}
return implode("",$newstr);
}
echo getLower("aaBBacde");//將輸出acde,重復的a不輸出
?>
你根據需要選你需要的
㈧ php 如何去掉字元串中重復的字元
php去除字元串中重復的字元
<?php
$str = '螞蟻螞蟻學院學院,我非常愛愛愛愛愛你!522200011111333311111444';
function mbstringtoarray($str,$charset) {
$strlen=mb_strlen($str);
while($strlen){
$array[]=mb_substr($str,0,1,$charset);
$str=mb_substr($str,1,$strlen,$charset);
$strlen=mb_strlen($str);
}
return $array;
}
$arr = mbstringtoarray($str,"gbk"); //分割字元串
$arr =array_unique($arr); //過濾重復字元
$str = implode('',$arr); //合並數組
echo $str;
?>
執行結果:
螞蟻學院,我非常愛你!520134