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í
×
    včera 22:44 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 22:33 | Zajímavý projekt

    BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.

    ❗Červivý Hřib krade❗ | Komentářů: 7
    včera 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 12
    včera 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 11
    včera 09:44 | IT novinky

    Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.

    Ladislav Hagara | Komentářů: 11
    včera 09:33 | Nová verze

    Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    včera 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 1
    8.10. 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    8.10. 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 9
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2822 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: PHP funkce

    13.2.2011 23:18 Pepino
    PHP funkce
    Přečteno: 746×
    Dobrý večer, dovolil bych si prosím požádat jako ještě celkem nezkušený s jednou funkcí.

    Mám proměne:
    $prom1 = "neco";
    $prom2_pozice = "1";
    $znak1 = "S";
    $znak2 = "E";
    a potrebuji najit v souboru cast textu, ktery podle promenych rika: budu hledat 1 text "neco" za timto textem najdu první znak S a prvni znak E a mezi temito znaky vyberu text.

    Vůbec nevim jak na to mam jit. Poradil by mi prosím někdo? Googloval jsem cele odpoledne ale nenasel jsem vubec nic. Dekuji za pomoc. Pepa

    Řešení dotazu:


    Odpovědi

    Přemek Vyhnal avatar 14.2.2011 00:01 Přemek Vyhnal | skóre: 24 | blog: Toto není blog! | Dobřichovice
    Rozbalit Rozbalit vše Re: PHP funkce
    Nebylo by lepší použít regulární výraz? Něco jako /neco.*?S(.*?)E/
    NO RAPTORS!
    15.2.2011 19:55 Ben Joyce
    Rozbalit Rozbalit vše Re: PHP funkce
    Příloha:
    Mozna to je trochu neprehledne a nejspise by se nasel lepsi pristup k tomuto problemu, ale toto je muj prvni napad.
    Pokud jsem dobre pochopil problem, chcete vyhledavat od pozice $prom2_pozice text $prom1 a dale vyhledat prvni znak $znak1 a prvni znak $znak2 a ziskat text mezi temito znaky.
    Problem je reseny obecne, takze $prom1 muze byt napriklad i veta, ale znaky jsem zachoval jako znaky.
    Zde je kod:

    function vybrat_z_textu($prom2_pozice, $prom1, $znak1, $znak2, $string)
    {
    // vstupni kontrola
    if (strlen($prom1) < 1)
    $nalez = true;
    else
    $nalez = false;

    if (strlen($string) < 1)
    return;



    // zjisti delku textu
    $prom_lenght = strlen($prom1);
    $string_lenght = strlen($string);

    // prom2_pozice by mela obsahovat cislo v poradi znaku - tedy zacni na
    // patem znaku => $prom2_pozice = 5;
    $i = $prom2_pozice - 1;
    // probiha hledani klicove fraze $prom1 v textu
    while (($nalez != true) || ($string_lenght >= ($i + 1)))
    {
    // pokud prvni znak klic. fraze je shodny se znakem, ktery je na rade
    if ($string[$i] == $prom1[0])
    {
    // zjisti zdali dalsi znaky jsou shodne
    $n = $i + 1;
    for ($j = 1; $j <= ($prom_lenght - 1); ++$j)
    {
    if ($string[$n] != $prom1[$j])
    break;
    else
    $uspech = true;
    ++$n;
    }

    // pokud jsou dalsi znaky shodne, "vrati" pozici po klic. frazi
    if ($uspech)
    {
    $i = $n;
    break;
    }
    }


    ++$i;
    }


    // vyhleda obe pismena
    $pozice_prvniho = 0;
    $pozice_druheho = 0;
    while (($nalez_druheho != true) || ($string_lenght >= ($i + 1)))
    {
    if ($string[$i] == $znak1)
    $pozice_prvniho = $i;

    if ($string[$i] == $znak2)
    {
    $pozice_druheho = $i;
    $nalez_druheho = true;
    }

    ++$i;
    }


    // vybere a vrati text mezi znaky
    return substr($string, $pozice_prvniho + 1,
    ($pozice_druheho - $pozice_prvniho) - 1);
    }


    A zde je doplnek, na kterem muzete kod vyzkouset:

    // vstupni data
    $prom1 = "neco";
    // predpokladam ze je zde pozice, na ktere ma zacit vyhledavat
    $prom2_pozice = 1;
    $znak1 = "S";
    $znak2 = "E";

    // vstupni text
    $string = "Toto je cvicny text. Jde pouze o to, aby zde program nasel
    slovo Neco NECO NeCo neco (zkouska) a potom pismeno S a mezi tim ma byt text - tedy je zde.
    Nyni jiz musi najit pismeno E. A je to.";
    var_dump(vybrat_z_textu($prom2_pozice, $prom1, $znak1, $znak2, $string));

    Cely soubor (samostatne funkcni) naleznete v priloze.
    15.2.2011 23:21 l4m4
    Rozbalit Rozbalit vše Re: PHP funkce
    Lze se pak divit, že má PHP tak hroznou pověst?
    16.2.2011 09:41 Vjetnam
    Rozbalit Rozbalit vše Re: PHP funkce
    To je opravdu krize. Misto 1 radku kodu s regularnim vyrazem takovy bastl...
    16.2.2011 10:37 Ben Joyce
    Rozbalit Rozbalit vše Re: PHP funkce
    Regularni vyrazy by snad vratili pouze true nebo false, ne?
    16.2.2011 10:45 Ben Joyce
    Rozbalit Rozbalit vše Re: PHP funkce
    Beru zpet, podival jsem se do dokumentace - vrati nejspise integer ukazujici na pozici vyskytu. Nenapadlo me to resit pres reg. vyrazy, bylo by to o dost kratsi.
    16.2.2011 12:11 jos
    Rozbalit Rozbalit vše Re: PHP funkce
    podívej se ještě jednou a pořádně

    vrací to počet matchů, samotný matche ti to nacpe (preg_match) do třetího parametru
    16.2.2011 18:41 Ben Joyce
    Rozbalit Rozbalit vše Re: PHP funkce
    Pravda, to by to jeste podstatne zjednodusilo - pomalu do jednoho radku.
    16.2.2011 10:17 novak
    Rozbalit Rozbalit vše Re: PHP funkce
    Ne. Protoze v nem kdejakej bastlir vybastli kdejakej polofunkcni bastl a jeste se sam nazve programatorem.
    Michal Wirth avatar 16.2.2011 18:44 Michal Wirth | skóre: 26
    Rozbalit Rozbalit vše Re: PHP funkce
    no, misto takovy machisticky hlasky byste mohl priste poskytnout nejaky lepsi reseni ... ne kazdy totiz spadl z nebe uceny tak, jako vy
    Důležité se časem stává absurdním, absurdní se časem mění v důležité.
    16.2.2011 21:35 l4m4
    Rozbalit Rozbalit vše Re: PHP funkce
    A to konkrétně proč?

    Řešení už je přece v prvním komentáři, výrazně starším než ten, na který jsem reagoval. Přesný regulární výraz z toho dotazu stejně nezkonstruuji, protože např. nerozumím, jak se vlastně použije ta jednička.
    Michal Wirth avatar 17.2.2011 07:58 Michal Wirth | skóre: 26
    Rozbalit Rozbalit vše Re: PHP funkce
    ja jsem uz psal proc ... pokud jste mel potrebu na neco takoveho reagovat, mohl jste vzit v potaz, ze dotycny je evidentne zacatecnikem a neshazovat ihned jeho reseni

    navic pokud byste nemel po ruce regexpy, tak byste to ve vysledku pravdepodobne resil podobnym "rychlo-bastlem" a asi by vas hned nenapadl nejaky efektivnejsi algoritmus

    ja take uplne nepochopil, co tazatel vlastne chce, ale nevidim nic slusneho na zesmesnovani nekoho, kdo se pokusil dat aspon nejakou "rozumnejsi" odpoved
    Důležité se časem stává absurdním, absurdní se časem mění v důležité.
    17.2.2011 09:25 l4m4
    Rozbalit Rozbalit vše Re: PHP funkce
    Kdyby se příspěvek, na který jsem reagoval, objevil první, a až poté řešení s regexpem, tak bych takto nereagoval. V tomto případě se ovšem dotyčný začátečník mohl poučit, že to jde dělat řádově lépe, a nedávat sem ty špagety. Že to neudělal... no, proto mají PHP a programátoři v něm pověst, jakou mají.
    17.2.2011 13:09 Ben Joyce
    Rozbalit Rozbalit vše Re: PHP funkce
    Ano, mohl bych se poučit, ale dříve jsem pokaždé použil reg. výraz jen v situaci, kdy jsem potřeboval true nebo false - tedy měl jsem zafixovanou návratovou hodnotu preg_match jako bool. Tedy jsem neviděl nějaké řešení. Je ale pravda, že jsem se měl ujistit v dokumentaci.
    Michal Wirth avatar 17.2.2011 13:13 Michal Wirth | skóre: 26
    Rozbalit Rozbalit vše Re: PHP funkce
    ano, to byste priste mel
    Důležité se časem stává absurdním, absurdní se časem mění v důležité.
    Michal Wirth avatar 16.2.2011 18:26 Michal Wirth | skóre: 26
    Rozbalit Rozbalit vše Re: PHP funkce
    na prvni pohled to vypada, ze by to mozna mohlo nejak fungovat, neni to ale ani bezpecne ani jednoduche a ani efektivni reseni, coz je spatne ... nelze totiz na prvni pohled zjistit, co to vlastne dela a zda je to tak spravne ... je lepsi vyuzit prostredku, ktere jsou pro toto urceny a ktere jsou uz lety proverene ... treba zde lze elegantne uplatnit regularni vyrazy ... napr. takto
    /*
     * Najde v ramci textu prvni vyskyt slova "neco" a vrati prvni podretezec,
     * ktery nasleduje za timto nalezem mezi pismeny "S" a "E" (bez ohledu na
     * spravne parovani znaku). Pokud nedojde ke shode, funkce vraci false.
     */
    function foo($text)
    {
    	$matches = array();
    
    	if (preg_match('/neco[^S]*S([^E]*)E/', $text, $matches) > 0)
    		return $matches[1];
    
    	return false;
    }
    Důležité se časem stává absurdním, absurdní se časem mění v důležité.
    16.2.2011 19:06 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP funkce
    Ale nužno podotknouti, že kdyby byly parametrické i další proměnné ze zadání, nebylo by to již tak triviální. A nakonec by se dospělo k podobnému klonu „ručního“ řešení jak zde byl již uvedeno, nebo by se funkce značně rozvinula na ošetření vstupu a generování platného regexp.
    Nad 1. řešením by chtělo „malinko“ zapracovat, ale jinak obě jsou dobrá, ale každé na něco jiného :).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Michal Wirth avatar 16.2.2011 19:27 Michal Wirth | skóre: 26
    Rozbalit Rozbalit vše Re: PHP funkce
    ano, muselo by se to jeste dodelat
    Důležité se časem stává absurdním, absurdní se časem mění v důležité.

    Založit nové vlákno • Nahoru

    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.