Weblap tervezésénél az egyik legfontosabb dolog az átláthatóság. Ennek egyik alapeleme az, hogy a különböző dolgokat ABC sorrendben írjuk ki...

Én ma belefutottam abba a problémába, hogy a Magyarországon levő megyéket ABC sorrendben szerettem volna kiírni... Lustaság fél egészség alapon inkább írtam egy rövid szkriptet, ami egy megadott TXT file sorait ABC sorrendben adja vissza...

kódfunction abc_sort($file, $template="")

{

if(!file_exists($file) OR !is_readable($file))

{

return false;

} $fa = fopen($file,'r');

while($data = fgets($fa, 1024))

{

$array[count($array)] = $data;

}

natsort($array);

foreach($array as $variable)

{

if($template == '')

{

$return .= $variable . "<br>\n";

}

else

{

$return .= ereg_replace('{VALUE}', $variable, $template) . "\n";

}

}

return $return;

}

Nézzük mit csinál ez a kód!

Két változót fogad el, az első kötelező, a második nem. Az első változó egy filenév-nek kell, hogy legyen. Ha létezik a file, és olvasható is, akkor megnyitja a file, és minden sort kiolvas belőle. Ezután a "Natural Order" (természetes sorrend... Hogy az ABC mitől természetes az kérdéses, de ez most részletkérdés...) szerint sorrendbe rakja őket, és utánna ezeket soronként visszaadja.

Ha nem adtuk meg a sémát a második változóban, akkor úgy, hogy minden egyes sort egy új sorba ír ki és kész, ha megadtuk, akkor a séma szerint. Utóbbi esetben a sor szövegét a {VALUE} szöveggel helyettesítjük...

Használat:

Valahova a PHP oldalunk-ba szúrjuk be ezt a kódod, és utánna így hívjuk meg:

kódprint abc_sor('file_neve');

Az én példámra visszatérve, én ugye a megyéket akartam kilistázni. A megyéket a megyék.txt fileban tároltam el, olyan sorrendben, ahogy eszembe jutottak, és mivel egy <SELECT-be akartam az értékeket berakni a következő képpen kellett formáznom:

kódprint abc_sor('file_neve', '<OPTION value="{VALUE}">{VALUE}</OPTION>');

(Zárójeles megjegyzés: ugyan nem teszteltem, de gondolom ha sok sorról van szó (több százezer), akkor egy kicsit lassú lehet... Akár másodperces nagyságrend, ami - mint tudjuk - PHP-nél végzetes lehet, ha alacsony értékre van állítva a Maximum excecution time direktíva)

Írta: BlackY

Harder

Harder

Profil