abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:22 | Bezpečnostní upozornění

    Byly zveřejněny informace o kritické zranitelnosti CVE-2025-55182 s CVSS 10.0 v React Server Components. Zranitelnost je opravena v Reactu 19.0.1, 19.1.2 a 19.2.1.

    Ladislav Hagara | Komentářů: 3
    dnes 02:44 | Komunita

    Bylo rozhodnuto, že nejnovější Linux 6.18 je jádrem s prodlouženou upstream podporou (LTS). Ta je aktuálně plánována do prosince 2027. LTS jader je aktuálně šest: 5.10, 5.15, 6.1, 6.6, 6.12 a 6.18.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Byla vydána nová stabilní verze 3.23.0, tj. první z nové řady 3.23, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    včera 18:11 | Nová verze

    Byla vydána verze 6.0 webového aplikačního frameworku napsaného v Pythonu Django (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 05:55 | Nová verze

    Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).

    Ladislav Hagara | Komentářů: 13
    včera 05:11 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 01:55 | Nová verze

    Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    2.12. 19:33 | Nová verze

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 0
    2.12. 15:22 | IT novinky

    Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 0
    2.12. 13:11 | IT novinky

    Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.

    Ladislav Hagara | Komentářů: 10
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (47%)
     (19%)
     (18%)
     (23%)
     (15%)
     (25%)
     (16%)
     (18%)
    Celkem 426 hlasů
     Komentářů: 18, poslední 2.12. 18:34
    Rozcestník

    Dotaz: php array file_exists

    petka avatar 3.8.2011 15:39 petka | skóre: 25 | blog: heydax | Klasterec N/O
    php array file_exists
    Přečteno: 465×

    Resim tu asi jednoduchou vec , potreboval bych zjistovat existenci souboru z pole .

    Budu mit treba v databazi seznam souboru treba soubor.txt , soubor2.txt , soubor.jpg atd ...

    Chtel bych z tohoto pole hledat soubory na disku a pripadne s nima dal pracovat .

    Napadl me for s countem pro pole , nebo foreach .

    V mem prikladu zpracuje jen prvni slovo v poly .

    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...

    Řešení dotazu:


    Odpovědi

    3.8.2011 19:13 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Nějak nerozumím dotazu. Máš ten seznam souborů v databázi, v poli, v poly nebo v adresáři? Asi jsi zapomněl ten příklad přiložit, protože pokud máš názvy v poli, foreach to zvládne.

    BTW: Tady můžeš klidně psát česky, server to zvládne a dotaz buje možná srozumitelnější. Dokonce ani nemusíš dělat mezery před interpunkcí a dělat pro každou větu samostatný odstavec.
    Řešení 2× (petka (tazatel), l0gik)
    3.8.2011 21:03 romanov | skóre: 3
    Rozbalit Rozbalit vše Re: php array file_exists
    mno esli spravne chapu tvy zadani, tak je to easy:
    $pole = array( "nazev_1", "nazev_2", "nazev_n");
    foreach( $pole as $nazev ) {
         if( file_exists( $nazev ) ){
              // blok prikazu
         } else {
              echo "soubor neexistuje";
         }
    }
    
    petka avatar 4.8.2011 12:12 petka | skóre: 25 | blog: heydax | Klasterec N/O
    Rozbalit Rozbalit vše Re: php array file_exists

    Tak prikladam kod .

    /* funkce na ovladani sym linku */
    function share_action ($id,$genre,$name,$total,$from,$by,$sort,$year)
    {
    $exp_name = str_replace(" ","_",(trim($name)));
    $array_genre = explode(",", $genre );


    for($i = 0; $i < count($array_genre); $i++)
    {
    $video_link = "/mnt/disk01/sym_link_movies/".dir_file_name($array_genre[$i])."/".dir_file_name($exp_name)."_".$year."/video.avi";

    $array_disc = array("/mnt/disk01/id_movies/", "/mnt/disk02/id_movies/" , "/mnt/disk03/id_movies/");
    for($d = 0; $d < count ($array_disc); $d++)
    {

    if (file_exists($array_disc[$d].$id.".avi"))
    {       

    if (file_exists($video_link))
    {$img = "<a href=\"/movies/share_movie.php?razeni=".$sort."&id=".$id."&share=off&celkem=".$total."&od=".$from."&by=".$by. "\"><img src=\"/movies/img/off.png\"></a>";}
    else
    {$img = "<a href=\"/movies/share_movie.php?razeni=".$sort."&id=".$id."&share=on&celkem=".$total."&od=".$from."&by=".$by."\"><img src=\"/movies/img/on.png\"></a>";}
    return $img;
    }       
    else

    {$img = "<img src=\"/movies/img/warning.png\">";}
    return $img;

    }//konec for pro diskova pole
    }//konec for pro genre
    }//konec funkce

    /* konec funkce */


    Funkce probehne v poradku , ale zkontroluje jen prvni misto v poly disc , na dalsi kasle .

    Zkousel jsem i  foreach , ale bohuzel se stejnym vysledkem .

    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
    4.8.2011 13:03 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Máš chybně definovanou hodnotu proměnné $video_link. Patří dovnitř cyklu. Pokud bys používal foreach, tak bys na to možná přišel sám.
    petka avatar 4.8.2011 14:49 petka | skóre: 25 | blog: heydax | Klasterec N/O
    Rozbalit Rozbalit vše Re: php array file_exists

    $video_link je v poradku , me jde o $array_disc , projede jen prvni z pole a dalsi se uz netestujou .

    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
    4.8.2011 15:15 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    No jo, víš o tom, že tam máš 2x return $img; uvnitř cyklu?
    petka avatar 4.8.2011 15:24 petka | skóre: 25 | blog: heydax | Klasterec N/O
    Rozbalit Rozbalit vše Re: php array file_exists

    Jsou tam dve podminky , pro kazdou jeden return , v pripade ze jeden zakazu , tak uz to nefunguje jak ma .

    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
    4.8.2011 15:33 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Řekl bych, že druhý return má být uvnitř druhého else. Takto se provede vždy po prvním průchodu cyklem.
    4.8.2011 15:46 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Mělo být: return až za koncem for pro disková pole. Tím pádem je druhý else zbytečný.
    4.8.2011 15:57 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    A pokud chceš projít všechny žánry, tak ještě o řádek níž.

    Tohle je typický případ, kdy je lepší for nahradit konstrukcí foreach. Zmizí proměnné $i a $d. Zmizí i funkce count(). Skript se tím hodně zpřehlední.
    petka avatar 4.8.2011 15:58 petka | skóre: 25 | blog: heydax | Klasterec N/O
    Rozbalit Rozbalit vše Re: php array file_exists

    Nejdriv se testuje jestli existuje soubor na disku , v pripade ze ne vrati varovani a v pripade ze soubor existuje tak zkontroluje jestli uz nejsou symbolicke linky hotove , v pripade ze ano tak mi zdeli ze uz je hotovo , v pripade ze ne tak mi nabidne jejich vytvoreni .

    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
    4.8.2011 16:08 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Jenže ty otestuješ, jestli je soubor na disku a hned na konci prvního běhu cyklu dáváš nepodmíněný return - je mimo větev else.
    petka avatar 4.8.2011 17:46 petka | skóre: 25 | blog: heydax | Klasterec N/O
    Rozbalit Rozbalit vše Re: php array file_exists

    Dik mrknu na to , dost se v tom uz ztracim .

    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
    4.8.2011 18:01 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Hodně by tomu pomohlo, kdyby ses naučil odsazovat. Je několik způsobů, každý z nich má své výhody a nevýhody. Mají však společnou výhodu, že chyby se v nich hledají mnohem lépe. Abych tvůj problém pochopil, musel jsem si to celé přeformátovat. Výsledek má sice jen 19 řádek, ale je pro mne mnohem srozumitelnější a vidím v něm další logické chyby.

    Takže si zaveď nějakou kulturu psaní zdrojáku a drž se jí. A nauč se před tečkou a čárkou nedělat mezeru, vypadá to děsně. Absenci nabodeníček už snad nějak překousnu.
    petka avatar 4.8.2011 18:32 petka | skóre: 25 | blog: heydax | Klasterec N/O
    Rozbalit Rozbalit vše Re: php array file_exists

    Funguje , ja vim je to sprasene , ale me jde hlavne ted o funkcnost , az to bude hotove tak zacnu cistit , komentovat atd...

    /* funkce na ovladani sym linku */
    function share_action ($id,$genre,$name,$total,$from,$by,$sort,$year)
    {
    $exp_name = str_replace(" ","_",(trim($name)));
    $array_genre = explode(",", $genre );
    $array_disc = array("/mnt/disk01/id_movies/", "/mnt/disk02/id_movies/" , "/mnt/disk03/id_movies/");

    for($d = 0; $d < count($array_disc); $d++)
    {
    $disc = ($array_disc[$d].$id.".avi");
    if (file_exists($disc))
    {

    for($i = 0; $i < count($array_genre); $i++)
    {
    $video_link = "/mnt/disk01/sym_link_movies/".dir_file_name($array_genre[$i])."/".dir_file_name($exp_name)."_".$year."/video.avi";


    if (file_exists($video_link))
    {$img = "<a href=\"/movies/share_movie.php?disc=".$disc."&razeni=".$sort."&id=".$id."&share=off&celkem=".$total."&od=".$from."&by=".$by. "\"><img src=\"/movies/img/off.png\"></a>";}
    else
    {$img = "<a href=\"/movies/share_movie.php?disc=".$disc."&razeni=".$sort."&id=".$id."&share=on&celkem=".$total."&od=".$from."&by=".$by."\"><img src=\"/movies/img/on.png\"></a>";}
    return $img;
    }//konec for pro genre
    }

    }

    if (!file_exists($disc))
    {
    {$img = "<img src=\"/movies/img/warning.png\">";}
    return $img;
    }


    }//konec funkce


    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
    4.8.2011 19:08 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Tak teď to vypadá opravdu příšerně. Vůbec se nedivím, že se v tom nemůžeš vyznat, když máš i komentáře špatně. Hlavně se nauč odsazovat a cykly typu foreach. A taky používat interpunkci. Vůbec nečteš, co píšu.
    petka avatar 4.8.2011 20:59 petka | skóre: 25 | blog: heydax | Klasterec N/O
    Rozbalit Rozbalit vše Re: php array file_exists

    Muj olibeny editor je vim , vse krasne zabarvuje . Po vlozeni kodu sem na abicko se rozpadne formatovani .

    Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
    4.8.2011 21:14 Kit
    Rozbalit Rozbalit vše Re: php array file_exists
    Také používám VIM, ale při přetahování sem problémy nemám. Ani mi nevkládá ty příšerné mezery před čárky.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.