Autor | Zpráva | ||
---|---|---|---|
dzutango Profil * |
#1 · Zasláno: 26. 3. 2012, 15:21:44
Jsem začáteční a naprogamoval jsem si následující skript. Přikazy jsou:
Projdi adresar, pokud najdes soubor a nejsi to ty, tak se podivej zda se v nem nenachazi "<div class="upozorneni">#1</div>", pokud ano, uloz nazev souboru a text z <h1>...</h1> do pole $prislusenstvi , pokud ne uloz nazev souboru a text z <h1>...</h1> do pole $soubory.. Pak oboje pole setřiď podle abecedy. Kod je funkční, zajímá mě jen ,jestli by to šlo udělat lépe. <?php $i=0; $a=0; $y=0; $b=0; $adresar = opendir("."); while ($soubor = readdir($adresar)) { if(is_file($soubor) and $soubor!="index_php.php"){ $text=file_get_contents($soubor, "r"); if (preg_match('|<div class="upozorneni">#1</div>|', $text, $matches)) { $prislusenstvi[$y][$b]=$soubor; $b++; $text=file_get_contents($soubor, "r"); // echo($soubor) //kontrola nacteni obsahu souboru do promene v php preg_match('|<h1>([^<]*)</h1>|', $text, $matches); /* funkce pro hledani retezce*/ //echo($a . " " . $i . "<br>"); $prislusenstvi[$y][$b] = $matches[1]; $b=0; $y++; } else{$soubory[$i][$a]=$soubor; $a++; $text=file_get_contents($soubor, "r"); // echo($soubor) //kontrola nacteni obsahu souboru do promene v php preg_match('|<h1>([^<]*)</h1>|', $text, $matches); /* funkce pro hledani retezce*/ //echo($a . " " . $i . "<br>"); $soubory[$i][$a] = $matches[1]; $a=0; $i++;} }} closedir($adresar); sort($soubory); sort($prislusenstvi); print_r($soubory); //kontrolni vypis pole*/ print_r($prislusenstvi); ?> |
||
Nox Profil |
#2 · Zasláno: 26. 3. 2012, 16:32:54
No vylepšovat jde vše, no pokud se sám chceš zlepšovat, tak:
Začal bych nějakým zpřehledněním; sladěním formátování (mezery, odsazení, nové řádky...); přejmenováním proměnných $i, $a, $y, $b na smysluplnější; pokud kontroluješ jen existenci, nemusí mít preg_match 3. argument ... a většinou se upřednostňují str* (nebo str_*) funkce (tady strpos), ale slyšel jsem o případech, kdy byl regulár paradoxně rychlejší Z nějakého důvodu je tam načítání z toho stejného souboru 3x |
||
dzutango Profil * |
#3 · Zasláno: 26. 3. 2012, 18:42:16
Nox:
Díky, většinu jsem upravil ,jen mě nenapadá jak pojmenovat $i, $a, $y, $b :D |
||
dzutango Profil * |
#4 · Zasláno: 27. 3. 2012, 11:54:48
Ještě dotaz, jakto že nevadí když je v html místo
<div class="upozorneni">#1</div> ALE <div class="upozorneni"> #1 </div>
Myslel jsem že s tím bude problém. |
||
Nox Profil |
#5 · Zasláno: 27. 3. 2012, 14:51:15
Je otázka, jestli to má brát oboje, nebo jen to první. Podle zadání striktně jen to první a tak by to i mělo fungovat podle tohodle skriptu. Pokud i druhé, přidalo by se \s* kolem #1
|
||
dzutango Profil * |
#6 · Zasláno: 28. 3. 2012, 16:19:56
Teď to právě bere oboje, což chci..
|
||
Časová prodleva: 11 let
|
0