Výsledky 1 až 11 z 11

Téma: [PHP] problem s rekurzi

  1. #1

    Unhappy [PHP] problem s rekurzi

    mam soubory aaa1.txt a aaa12.txt a ted kontroluju jestli uz existuje a kdyz jo, tak chci ziskat novej nazev soboru s pridanou dvojkou na konci....
    pouzil sem na to tuhle rekurzi...zjisti ze soubor aaa122.txt uz neexistuje, ale nevrati mi to
    Kód:
    <?php
    function check_filename($filename) {
      //rozdeleni na jmeno a priponu
      $suffix = explode(".", $filename);
      //spocita pocet prvku pole aby se z toho mohla vyjadrit koncovka
      $pole = count($suffix);
      $filetype = $suffix[$pole-1];
      if (file_exists("$filename")) {
        $suffix[$pole-2] .= "2";
        $filename = $suffix[$pole-2].".".$filetype;
        check_filename($filename);
      }
      else{
        return $filename;
      }
    }
    $filename = "aaa1.txt";
    $temp = check_filename($filename);
    echo "<br>temp: ".$temp;
    
    ?>
    nic....

  2. #2

    Standardní Re: [PHP] problem s rekurzi

    Neb mas return jen v else casti podminky.

  3. #3

    Standardní Re: [PHP] problem s rekurzi

    no to jo..ale kdyz to ificko nic nevraci tak tam nemusi bejt return ne
    a kdyz ho tam dam tak mi to skonci na tom poslednim existujicim souboru....
    nic....

  4. #4

    Standardní Re: [PHP] problem s rekurzi

    a co zkusit celej ten else vyhodit a return nechat za ukončením toho if-u samotnej?
    ASUS A7N8X 2.0 DeLuxe; AMD Athlon XP 2500+@9.5×200; 2×DDR 512MB 400MHz CORSAIR CL2.5; ATi Radeon 9500 Pro 128MB;
    CD-RW Plextor Premium; DVD±RW LG GSA 4120B; nVIDIA SoundStorm; Genius SW-5.1 HT; Logitech MX310; SE K750i;
    Seagate Barracuda 7200.7 120GB/7200/2MB; Seagate Barracuda 7200.7 80GB/7200/2MB; SAMSUNG SyncMaster 957DF; MSI BT USB;
    DELL Vostro 1500; Core 2 Duo 2GHz; 2×2GB DDR2 667MHz; GeForce 8600M GT; 160GB SATA; Intel 4965GN Wireless-N;
    DVD±RW DL; WSXGA+; BT;

  5. #5

    Standardní Re: [PHP] problem s rekurzi

    to vrati zase jenom aaa12.txt
    a ja potrebuju vratit aaa122.txt
    nic....

  6. #6

    Standardní Re: [PHP] problem s rekurzi

    Preco rekurzia?
    Kód:
    <?php
    function uniq_name($name) {
      while (file_exists($name)) {
        $exploded = explode(".", $name);
        $exploded[count($exploded)-2].="2";
        $name = implode(".",$exploded);
      }
      return $name;
    }
    
    echo uniq_name("test.tst");
    
    ?>
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  7. #7

    Standardní Re: [PHP] problem s rekurzi

    proc rekurzni funkci? (nerikam ze to nejde, ale...)
    PHP kód:
    <?php
    $filename 
    'aaa1.txt';

    do {
        
    $parts explode('.',$filename,2);
        
    $filename $parts[0] . "2.$parts[1]"
        
    } while (
    file_exists($filename));

    echo 
    $filename;

    ?>
    je to fakt tak jednoduchy nebo jsem nepochopil zadani?

    EDIT: tak Rainbow byl rychlejsi...
    1) ASUS M6A
    2) Toshiba Portége R600-10U
    3) ASUS A8V-X AMD Athlon 64 3000+ Kingmax 2x256MB DDR 400 WD 120GB Samsung 80 GB GMC G30 Fortron FSP400-60THN-P
    Ideální indentace pro Pascal je šest stop pod zem.

  8. #8

    Standardní Re: [PHP] problem s rekurzi

    tak jo..diky..tohle me nenapadlo.... :-[
    nic....

  9. #9
    Senior Member
    Založen
    08.10.2002
    Bydliště
    Mělník
    Věk
    44
    Příspěvky
    1 275
    Vliv
    290

    Standardní Re: [PHP] problem s rekurzi

    rekurzi nebrat nikdy a nikde, jen to svini pamet

    Glo
    CASE Chieftec DX-01B-D { GIGABYTE X48 DS5 { Intel q9300 + 8GB + ATI x1600 + 2x Seagate ES2 1TB } + LiteOn SHM-165P6S} } + 21" Samsung SyncMaster 215TW

  10. #10

    Standardní Re: [PHP] problem s rekurzi

    Rekurzia je na niektore veci dobra, ale tych pripadov je dost malo - napr. spracovanie adresarovej struktury. Takze rekurziu pouzivat iba ked je na to dobry dovod.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  11. #11
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 738
    Vliv
    300

    Standardní Re: [PHP] problem s rekurzi

    Citace Původně odeslal Glottis
    rekurzi nebrat nikdy a nikde, jen to svini pamet

    Glo
    Ale jo, nekdy se bez toho strasne zaprasi kod, ale je treba aby clovek mel predstavu jak az hluboko to muze dojit a udrzet to v rozumnych mezich nebo pouzit jinej algoritmus.

    Videl sem uz par takovejch fci, ktery byly s rekurzi na 10 radku a bez ni by to bylo kB kodu, bez nejakyho vyraznyho setreni rameti nebo CPU.
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. [PHP] problem s hlavickama
    Založil Miiisa v sekci fóra Programování
    Odpovědí: 13
    Poslední příspěvek: 05.01.2006, 19:48
  2. Problem s PC - Samovolne vypinanie
    Založil B7u3A v sekci fóra Ostatní hardware
    Odpovědí: 15
    Poslední příspěvek: 04.11.2005, 21:00
  3. Problém s odesíláním dokumentů u e-mailů
    Založil P.D. v sekci fóra Programy a problémy s nimi
    Odpovědí: 6
    Poslední příspěvek: 30.10.2005, 07:24
  4. Dalsi problem s Audigy a Genius HT
    Založil astra4 v sekci fóra Zvuk
    Odpovědí: 6
    Poslední příspěvek: 13.06.2003, 07:56

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •