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

  • cucka

    addikt

    válasz RootRulez #10239 üzenetére

    Ez a kód lényegében totál hülyeség, mint ha olyan ember írta volna, aki most tanulta pascal-ban a filekezelést. Érdemes lenne megértened, hogy mit csinál a kód, mert abból nem fog semmi jól kisülni, ha kriptikus kódsorokat másolgatsz abban a reményben, hogy hátha működni fog.

    A kérdésedre a válasz a korábbi kódot felhasználva:

    function isUrl($val){ return $val != ''; }
    //a file sorait beolvasom a $linkek tömbbe
    $linkek = array_filter(file("linkek.txt"), 'isUrl');
    //véletlenszerű kulcs kiválasztása a linkek tömbből
    $tkey = mt_rand(0, count($linkek)-1);
    //kiválasztok 1 elemet a tömbből a $link változóba
    $link = $linkek[$tkey];
    //törlöm a tömbből a kiválasztott elemet
    unset($linkek, $tkey);
    //ha elfogytak a file sorai, akkor felviszem az új elemet a $linkek tömbbe
    if (count($linkek)==0){
    $linkek[0] = 'előre megadott szöveg';
    }
    //a $linkek tömb tartalmát kiírom a fileba
    file_put_contents("linkek.txt", implode("\n", $linkek);

    Ahogy látod, a kód elején beolvasom a file tartalmát a végén meg kiírom, az összes művelet a $linkek tömbben történik. A kód nem kezeli le azt az esetet, ha az elején üres a file, továbbá egy idő után, ha elfogynak a linkek, mindig ugyanazt a szöveget fogja beírni a fileba majd kiolvasni, szóval gondold át, hogy tényleg ezt akarod-e? A kód futása után a $link változóban éred el a kiválasztott sor tartalmát, pl. beleírhatod egy html <a> tag-be.

    (#10240) PazsitZ
    Az alap problémában nem szerializált formában van a fileban az adat, továbbá kérdéses, hogy mennyire segíti a megoldás megértését a kódod nagy részét kitevő zaj (kiírások, $_GET feldolgozás, stb)

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