Autor | Zpráva | ||
---|---|---|---|
Argos Profil |
#1 · Zasláno: 18. 5. 2008, 19:52:04 · Upravil/a: Argos
Ahoj, přemýšlel jsem o scriptu který by mi rozsekal soubor podle toho jak jdou za sebou proměnné - z formátu:
$promenna1 = "hodnota"; //proměnná hodnota $promenna2 = "jina hodnota"; //poznámka $promenna3 = "třetí hodnota proměnné" //bez poznámky by u každého řádku vzal vždy jméno přoměnné její hodnota a poznámku k ní a vypsal do formuláře tak aby se libovolná hodnota u každé proměnné dala změnit scriptem. Soubor jsem pomocí strtok rozsekal do jednotlivých řádků a následně jednotlivé řádky porovnávám regulérním výrazem ereg($maska,$tok,$pole) už několikrát jsem pomocí různých udělátek na internetu (http://www.regexp.cz/ ale i programy na pc) atd zkoušel napsat správně proměnnou $maska - nicméně validátory vrátí že je to správně ale ve scriptu to potom nejede můj první pokus - tím se asi ani nezaobírejte: ^\$([[:alnum:]]*) \= "([_a-zA-Z0-9\.\-ěščřžýáíéňťůúď]*)"; \/\/([_a-zA-Z0-9\.\-ěščřžýáíéňťůúď]*)$ druhý pokus se mi povedl udělat mnohem jednodušeji nicméně nefunguje ^\$(.*) \= (.{1})(.*)(.{3}) \/\/(.*)\n$ tohle mi v programu Expresso vrací z řetězce $promenna1 = "hodnota"; //proměnná hodnota 1:promenna1 2:" 3:hodnota 4:"; 5:proměnná hodnota[CR] po dosazení do scriptu ale znovu nefunguje - nevěděl by prosím někdo? Dík za každou reakci ;-) |
||
Chamurappi Profil |
#2 · Zasláno: 18. 5. 2008, 20:51:55
Reaguji na Argose:
^\$([^=]+)\s*=\s*"([^"]*)";\s*\/\/(.*)$ |
||
Argos Profil |
#3 · Zasláno: 19. 5. 2008, 11:38:43
Omlouvám se, ale asi mám chybu jinde - ani tato maska nejede nemohl by na to někdo prosím kouknout? soubor index.php:
<?php $file="./variables.php"; $fp=FOpen($file,"r"); $soubor=FRead($fp,FileSize($file)); $tok = strtok($soubor, "\n"); $maska= '^\$([^=]+)\s*=\s*"([^"]*)";\s*\/\/(.*)$'; while ($tok !== false) { if(ereg($maska,$tok,$pole)) { echo("celá proměnná: ".$pole[0]."<br />Název proměnné:".$pole[1]."<br />Hodnota proměnné:".$pole[2]."<br />Komentář:".$pole[3]."<br /><br />"); } else { echo("Řetězec nevyhovuje."); } $tok = strtok("\n"); } @FClose($fp); ?> a soubor variables.php $promenna1 = "hodnota"; //proměnná hodnota stále vrací že řetězec nevyhovuje - přitom podle mého je to správně a pokud by se tu ještě obejvil Chamurappi: Kde se dá tak pěkně naučit ovládání regulérních výrazů?:-[ (kniha, web, školení? - pro začátek) Dík |
||
Argos Profil |
#4 · Zasláno: 19. 5. 2008, 11:42:53
Chamurapi: abych nezapoměl - děkuji i za tento výraz ;-)
|
||
Časová prodleva: 16 let
|
0