Hirdetés

Új hozzászólás Aktív témák

  • cucka

    addikt

    válasz RootRulez #10118 üzenetére

    Én inkább így csinálnám:
    function isUrl($val){ return $val != ''; }
    $linkek=array_filter(file("linkek.txt"), 'isUrl');
    $link=$linkek[mt_rand(0, count($linkek)-1)];
    header('Location: '.$link);

    Próbáld megérteni, mit csinál. Amire figyelni kell:
    - Ha beolvastad a file sorait egy tömbbe, akkor tudod a sorok számát, semmi szükség beégetni azt a 10-es konstans értéket. Az én verziómban a random a meglévő sorok közül fog választani egyet. Ehhez figyelni kell arra, hogy az mt_rand hogyan viselkedik a szélsőértékeknél (ezért a -1 a sorok számánál).
    - A fileban lehetnek üres sorok, például az utolsó sor utáni sorvége egy ilyet fog eredményezni. Ezért hívom meg a array_filter függvényt. Az isUrl eldönti, hogy a sor az egy helyes url-e (tehát alapesetben nem-e üres), az array_filter-el pedig lényegében kiszűröm a tömbből a helytelen elemeket.
    - As isUrl függvényt kiválthatod anonim függvénnyel (php 5.3-tól) vagy használhatod a create_function() függvényt is a célra.
    - Valami hibakezelést jó lenne belerakni, legalább arra, hogy mi történik, ha valamiért nem tudja megnyitni a file-t.

Új hozzászólás Aktív témák