abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

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

    Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 19
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

    Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    2.5. 11:22 | Bezpečnostní upozornění

    Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.

    Ladislav Hagara | Komentářů: 3
    2.5. 11:00 | Nová verze

    Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".

    Ladislav Hagara | Komentářů: 4
    1.5. 23:22 | IT novinky

    Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).

    Ladislav Hagara | Komentářů: 23
    1.5. 22:22 | Nová verze

    Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (43%)
     (13%)
     (26%)
     (17%)
    Celkem 53 hlasů
     Komentářů: 8, poslední dnes 08:25
    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: 423×

    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.