Autor | Zpráva | ||
---|---|---|---|
peta Profil * |
#1 · Zasláno: 9. 6. 2005, 10:18:06
Jak se prohledava v souboru?
Chci udelat jednoduchy databazovy system jen PHP mam asi neco takoveho: --- toto je OK, spise pro zajimavost --- $vysledektext=""; if(count($HTTP_POST_VARS)) { $jmeno1=$_POST['jmeno1']; $jmeno2=$_POST['jmeno2']; $heslox=$_POST['heslox']; $vyraz="^[0-9a-zA-Z]+$"; if ( !Ereg($vyraz,$jmeno1) || !Ereg($vyraz,$jmeno2) ) $jmeno1=""; if ($jmeno1!="") { $heslo1=md5($jmeno1.$heslox); //16byte(cili32) sifrou md5 if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') $heslo2=md5($jmeno2.$heslox); $heslo=$heslo2.$heslo1; --- tady je problem s hledanim --- $souborhry="hry.txt"; //soubor vytvor, pokud neexistuje $ft=FOpen($souborhry,"a");FClose($ft); //hledej hru $ft=FOpen($souborhry,"r"); $pos=strpos($ft,$heslo); FClose($ft); if ($pos===false) { $vysledektext.="hra se hledala, nenasla, vytvarim novou\n"; $data=$heslo."000000000"."000"; $ft=FOpen($souborhry,"a"); FPutS($ft,$data."\n"); FClose($ft); } else $vysledektext.="hra se hledala, a jiz existuje, nezle ji vytvorit\n"; kde 1. vytvoreni souboru s hou funguje spolehlive 2. zapis hry totez 3. ale to hledani nevim, zatim zkousim strpos, ale jaksi mne to ignoruje a pokazde vytvari novou hru |
||
peta Profil * |
#2 · Zasláno: 9. 6. 2005, 10:19:37
co se tyce promennych, ty nacitam v pohode pres post a to:
jmeno1, jmeno2, heslox (zaheslovani hry) samozrejme je to jednoduchy system, asi by bylo lepsi zaheslovat i data hry, ale zatim neni potreba. |
||
Kajman Profil * |
#3 · Zasláno: 9. 6. 2005, 10:33:03
$ft je ukazatel na soubor (typ file), ne jeho obsah (typ string). proto ji tam nelze nalézt. Je třeba si např načíst ten soubor do proměnné a v tam to hledat.
|
||
peta Profil * |
#4 · Zasláno: 9. 6. 2005, 11:06:20
Aha, jasne, ala http://www.zive.cz/h/Programovani/AR.asp?ARI=115839
ja myslel, ze k tomu mam hned pristup jako u $data=File(...) To potom bude jednodussi provadet hledani s File(), kdyz to pak zaviram, ze jo? |
||
peta Profil * |
#5 · Zasláno: 9. 6. 2005, 11:23:52
Stejne mi to nefunguje, co delam jeste spatne? ...
//hledej hru $vysledektext.="hra se hleda... "; while( ($data=File($souborhry))==false ); $j=Count ($data) -1; $nasel=false; //for ($i=0;$i<$j;$i++) {$pos=strpos($data[$i],$heslo);if ($pos===true) $nasel=true;} for ($i=0;$i<$j;$i++) if (substr($data[$i],0,32)==$heslo) $nasel=true; if ($nasel) $vysledektext.="jiz existuje, nezle ji vytvorit!\n"; else { $vysledektext.="neni, vytvarim novou\n"; $data=$heslo."000000000"."000"; $ft=FOpen($souborhry,"a"); FPutS($ft,$data."\n"); FClose($ft); } |
||
krteczek Profil |
#6 · Zasláno: 9. 6. 2005, 13:29:09
já bych nejrve ten soubor načetl do pole:
$data=file("nazev.souboru") kde jeden řádek=jednomu řádku pole a potom bych ho jednoduše procházel funkcí foreach(): foreach($data) bude to rychlejší než for jo a při ukládání si musíš zajistit aby každý další zápis byl na dalším řádku v tom souboru, jinak to nebude fungovat krteczek |
||
peta Profil * |
#7 · Zasláno: 9. 6. 2005, 14:12:51
krteczek
Ja mel pocit, ze to presne delam, jenom nemam foreach, ale for while( ($data=File($souborhry))==false ); $j=Count ($data) -1; $nasel=false; for ($i=0;$i<$j;$i++) if (substr($data[$i],0,32)==$heslo) $nasel=true; Jenom s tim rozdilem, ze se mi obsah souboru pokusi nacis a do te doby se to ani nehne (while) To sem tusim vytahl z zive nebo intervalu :) Mi tam nefunguje spise to porovnavani. A nevim proc. Zkus si programovat v JS, to je proti PHP uplne zuzo labuzo... zadna otrava se stredniky, nesmyslny vyraz ti zahlasi JS konzola z Firefoxu, ... parada, PHP je fujka nejvetsi, s jakou jsem mel moznost pracovat :) |
||
Warden Profil |
#8 · Zasláno: 9. 6. 2005, 16:06:45
tak to si asi s moc vecma nepracoval, php je best :o)
co to zkusit takhle: $data = File($souborhry); $nasel = false; foreach ($data as $radek){ if (strstr($radek, $heslo)){ $nasel = true; } } ...jen tak strilim od boku, tak to mozna nepude, nevim :) |
||
peta Profil * |
#9 · Zasláno: 9. 6. 2005, 16:43:48
Warden: Zkusim...
Asi jsi nepracoval s JS :) Chapu, ze PHP ma ty vymozenosti, jako prace se soubory a a spol, ale kdyz si vemes kvalitu jazyku a pohodli programovani tak je PHP stejny smejd jako ASP. Samy strednik a podobny nesmysl :) |
||
peta Profil * |
#10 · Zasláno: 9. 6. 2005, 16:52:48
Warden: Super, funguje, dik :)
Ja moc ty php prikazy prave neznam, tak ono se to tezko. Ja tak JS a packal :) Cili strstr je porovnani. Proc to nefunguje s rovnitky resit nebudu. Nejakou peknou tabulku s prikazy bys nemel? Pripadne nejake fajn priklady. Treba ten chat na intervalu s jednim souborem, ja jej sice trosku upravil, ale stele mi neni jasne to define (peter-mlich.wz.cz/xchat/) na intervalu to najde, kdyz das hledat pres google "php chat", v intervalu mozna "chat" (na intervalu jsem nasel peknou fintu na smajliky, to tam urco dam, ale asi budu muset prekopat celej kod a vykaslat se na jeho DEFINE pro zpravu) |
||
Warden Profil |
#11 · Zasláno: 10. 6. 2005, 07:43:29
mno s JS sem delal, taky s packalem, object packalem, C, C++ a podobny vymozenosti ;)...a php mam moc rad :)...
priklady bohuzel zadny nemam, spis to chce si projit php dokumentaci, tam najdes spoustu zajimavejch vecicek jinak nevim co presne myslis za chat zkus sem hodit presne link, ja sem tam v zadnym php chatu "define" nenasel :) jinak "define" definuje konstanty :) |
||
peta Profil * |
#12 · Zasláno: 10. 6. 2005, 08:56:09
http://interval.cz/serial.asp?serial=32
- je to prvni link, uloz si dole ten zip-soubor a rozbal. Je tam soubor zvany DEFINE, kde pres konstanty resi, co se ma vypsat na obrazovce. Neni mi to jasne uplne a tak jsem si na to delal vlastni funkci a zda se, ze proti jeho konstante je to rychlejsi. |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0