Autor | Zpráva | ||
---|---|---|---|
zero0x Profil |
#1 · Zasláno: 9. 4. 2007, 06:48:13
zdravim. chcel by som si vytvorit system, ktory by sluzil ako auto_increment v mysql, ibaze chcem retazce..
ale nie hocijake, v takomto tvare (spoluhlaska)(samohlaska)(spoluhlaska)(samohlaska)(spoluhlaska), aby vzniklo celkom lahko zapametovatelne slovo. dalo by sa to generovat nahodne, ale tie retazce sa nesmu opakovat? take ze kontrolovat v db ci tam uz take je sa mi velmi nechce akoby ste to vyriesili nejak podobne ako auto increment? |
||
souki Profil |
#2 · Zasláno: 9. 4. 2007, 09:20:02
jedině taky přičítat.... začít na BABAB a další dát BABAC, další BABAD
|
||
Bildr Profil |
#3 · Zasláno: 9. 4. 2007, 10:12:58
<?
function strgen($delka) { $samohlasky = array("a","e","i","o"); // to si doplň $souhlasky = array("b","f","l","m","z"); $ret = ""; for($i = 0; $i < $delka; ++$i): if($i%2): $ret = $souhlasky[rand(0,count($souhlasky)-1)]."".$ret; else: $ret = $samohlasky[rand(0,count($samohlasky)-1)]."".$ret; endif; endfor; return $ret; } echo(strgen(8)); ?> Obávám se ale, že uložení do databáze se stejně nevyhneš. Ukládej hash a pak porovnávej hash vystupu tyhle funkce. |
||
Alphard Profil |
#4 · Zasláno: 9. 4. 2007, 10:25:05
Bildr
jednodušší je array_rand(); |
||
Bildr Profil |
#5 · Zasláno: 9. 4. 2007, 10:29:48
co není v hlavě je v rukách :) btw. tohle ti ale pojede i na php3
|
||
loyza Profil |
#6 · Zasláno: 9. 4. 2007, 10:59:13
Řetězce se nesmí opakovat? Budou se generovat náhodně? Tak v tom případě se obávám, že pokud si to někam neuložíš tak tyhle dvě podmínky nesplníš. Předpokládám, že ty vygenerované řetězce budeš někde používat ne? Asi budou někde uložené ne? Tak se tam budeš muset podívat jestli vygenerovaný řetězec již existuje nebo ne.
|
||
zero0x Profil |
#7 · Zasláno: 9. 4. 2007, 13:14:22
to ano, ale nechcem sa zbytocne spajat s databazou..
skor by som chcel nieco ako pocitadlo vygenerovanych cisel, a aby sa to negenerovalo nahodne ale zaradom. pocitadlo sa ulozi do suboru, a pokracujeme tam, kde sme skoncili. nesmu sa opakovat v ziadnom pripade.. |
||
krteczek Profil |
#8 · Zasláno: 9. 4. 2007, 13:52:44
zerox, dojdeš dostavu kdy zjistíš že ti někdo smaže již všechny předešlé generace, co potom? každý přístup na stránku kde se mění obsah v souborech může být kritický, a čím více lidí stránku navštěvuje tím větší je riziko. Jistější je db
|
||
zero0x Profil |
#9 · Zasláno: 10. 4. 2007, 07:42:21
no este lepsie by bolo generovat tieto nazvy z hocijakeho cisla.. teda iba cisla 1 - (3x pocet variacii zo spoluhlasok + 2x pocet variacii zo samohlasok)..
|
||
zero0x Profil |
#10 · Zasláno: 10. 4. 2007, 11:50:57
malo by to byt nieco ako ked prevadzas cislo z desiatkovej sustavy do sestnastkovej.. ale zlozitejsie
|
||
zero0x Profil |
#11 · Zasláno: 10. 4. 2007, 11:57:39
myslite ze algorytmus ktory bude generovat vsetky moznosti a pri kazdej zistovat ci cislo v poradi sedi je optimalny?
|
||
zero0x Profil |
#12 · Zasláno: 10. 4. 2007, 12:14:44
tak som to nakoniec zriesil cez databazu, mozno niekoho bude zaujimat kod
<?php |
||
tiso Profil |
#13 · Zasláno: 10. 4. 2007, 12:19:21
zero0x - takto? au...
|
||
zero0x Profil |
#14 · Zasláno: 10. 4. 2007, 15:47:11
no, zase moze tam byt max jedno-dve pripojenie na databazu.. az take zle?
|
||
tiso Profil |
#15 · Zasláno: 10. 4. 2007, 16:04:21
zero0x - nikde neukladáš kód do DB, ale problém je inde - v logike takejto funkcie - keď budeš mať veľa záznamov v DB, tak Ti funkcia bude stále viac kolidovať a čas na jej spracovanie sa bude predlžovať. Lineárne sa zvyšujúci počet záznamov bude generovať exponenciálne rastúcu záťaž servera a to nie je v poriadku.
|
||
zero0x Profil |
#16 · Zasláno: 10. 4. 2007, 20:24:00
to je sice pravda v teorii, ale v praxi je to uplne inak, ved spolu tam bude 17*5*17*5*17=122825 moznosti, pri 1000 zaznamoch je pravdepodobnost, ze sa vykonaju 2 dotazy na DB 1:100, to cislo ma upokojuje.
prezradim o co ide, ide o nieco ako del.icio.us, teda mas svoje zalozky. a tento system je urceny na generaciu "odkazov pre kamarata" teda zadas iba /kolac.url a otvori sa dana stranka.. tieto kody sa budu generovat iba v pripade, ze pouzivatel klikne na tlacitko posli, teda ziadne zbytocne zaznamy.. inac zabavne slova generuje ten skript :D fujuk golos kujih vupat kateh duben jijug kanem rocim kodim vozeh cudim juzum dehet sekes ranon bisaf bibep mucat losas jatoj LOL :D, sa mi velmi paci, ze su lahko zapametatelne, to je trosku zjednodusenie pouzivania internetu, a keby sa tato funkcia ludom zapacila, bolo by to super =) |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0