Zdravim,
potreboval by som urobit algoritmus, ktory bude z nejakeho cisla (napr. zo mysql_insert_id();) generovat znaky a cisla, nieco na principe hexdec atd... Ale chcel by som tam mat vsetky znaky 0-9a-z
ukazka:
1 ------- 1
11 ------ a
55 ------ napr. 0c
5465 ----- napr. cj
atd atd.....
potrebujem to ako jednoznacny identifikator, ktory bude vo web adrese, vypocitany na zaklade auto_increment z db, a na nic rozumne neviem prist :(
Fórum › PHP
Prevod cisla do alfanumerického stringu
nie nie... ide mi o "postupnost" znakov... teda napr. 0..1..2...3....f....z......01.....0g......5c......zz.....001.....0hj.... co neni s base64 mozne :(KIIV napsal:
co base64 ?
no da sa to tak povedat... zatial ma len napadlo taketo nieco....
v poli budu znaky:
function prevod2($cislo) {
$znaky=array(1=>"1","2","3","4","5","6","7","8","9","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");
kedze je ich spolu 35, cislo ktore sa bude prevadzat sa nim bude delit...
napr. mas previest: 555
555 / 35 = 15
555 - (15 * 35) = 30
cize vysledok bude 15.ty a 30.znak v poli: fu
lenze ako nahle bude cislo vacsie ako 35 * 35 (teda 3 znaky) to uz nejak neviem vyriesit... teda neviem postavit funkciu (na 2 znaky uz mam)... nemam asi svoj den :(
nezapomen na 0
ja to delavam obvykle v C, ale v php by to vypadalo asi takto:
while ( $cislo > 0 ) {
$vysledek = $znaky[$cislo % $zaklad] . $vysledek;
$cislo = floor($cislo/$zaklad);
}
KIIV teba je tu skoda :) .... vali to , a vyzera ze dobre... idem co ocekovat detailne... obrovskéééééééééééééé dik..
ale nasiel som predsa chybu:
ked je cislo = pocet poloziek v poli tak mi zobrazi prvu (teda 0)
$znaky=array(1=>"0","1","2","3","4","5","6","7","8","9","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");
$cislo=36;
while ( $cislo > 0 ) {
$vysledek = $znaky[$cislo % 36] . $vysledek;
$cislo = floor($cislo/36);
}
echo $vysledek;
fakt nemam svoj den :( , samozrejme ze pole musi zacinat od kluca 0, nie 1.... a si ma nato aj upozornil.... no nic tu je funkcna verzia pre niekoho kto to bude tiez potrebovat:
function prevod($cislo) {
$znaky=array("0","1","2","3","4","5","6","7","8","9","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");
while ( $cislo > 0 ) {
$vysledek = $znaky[$cislo % 36] . $vysledek;
$cislo = floor($cislo/36);
}
return $vysledek;
}
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 48 hostů
Podobná vlákna
Převod stringu na TCHAR — založil Jurda_I
Prevod stringu na cislo — založil jirkab
Převod stringu do doublu — založil Hula
Prevod Stringu do pole znaku... — založil
Převod BIN stringu 00101110 na string v HEX formátu — založil oxidián
Moderátoři diskuze