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 05:55 | Komunita

    O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2026. Na programu je celá řada zajímavých přednášek a workshopů. Vstup na konferenci je zcela zdarma, bez nutnosti registrace. Přednášky lze sledovat i online na YouTube.

    Ladislav Hagara | Komentářů: 3
    dnes 05:22 | Komunita

    Mozilla a společnost Mila oznámily strategické partnerství za účelem rozvoje open source a suverénní AI. Cílem je ukázat, že open source AI může konkurovat uzavřeným systémům. Obě organizace chtějí posílit technologickou suverenitu a snížit závislost na hrstce velkých technologických firem.

    Ladislav Hagara | Komentářů: 1
    dnes 04:00 | Humor

    Adam Rice předvedl, že pomocí DNS lze distribuovat a spustit kompletní hru DOOM. Rozdělil WAD soubory a binárky do téměř 2000 DNS záznamů v Cloudflare zóně (jeden TXT záznam v DNS může nést okolo 2000 znaků textu). Ty pak stáhl PowerShellem, dekomprimoval a spustil přímo v paměti počítače bez nutnosti zápisu na disk, což prakticky dokazuje, že DNS může sloužit jako distribuované úložiště dat a možný kanál pro načítání kódu. Repozitář projektu je na GitHubu.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 13:00 | Komunita

    Dnes a zítra probíhají Arduino Days 2026. Na programu je řada zajímavých přednášek. Sledovat je lze od 17:00 na YouTube. Zúčastnit se lze i lokálních akcí. Dnes v Poličce v městské knihovně a zítra v Praze na Matfyzu.

    Ladislav Hagara | Komentářů: 5
    včera 12:11 | Nová verze

    Byla vydána beta verze Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.04 LTS mělo vyjít 23. dubna 2026.

    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Komunita Ladislav Hagara | Komentářů: 10
    26.3. 23:22 | Komunita

    Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.

    Ladislav Hagara | Komentářů: 3
    26.3. 22:33 | Nová verze

    Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 1
    26.3. 11:33 | Zajímavý článek

    Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.

    |🇵🇸 | Komentářů: 1
    26.3. 11:22 | IT novinky

    Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a

    … více »
    Ladislav Hagara | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1168 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Dotaz: Náhrada řetězde preg_replace_callback nefunguje

    6.1.2020 15:08 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Náhrada řetězde preg_replace_callback nefunguje
    Přečteno: 538×
    Dobrý den. Mořím se tady s kouskem kódu, který se nechová podle očekávání, a nevím proč.
    
    729 if( $debug ) trigger_error( '$replace: '.hppre($replace) );
    $replace = preg_replace_callback('/=([0-9a-f]{2})/i',
    	function($matches)use($debug){
    732		if( $debug ) trigger_error( 'konverze : '.$matches[1].' na '.hexdec($matches[1]).' - '.chr(hexdec($matches[1])) );
    		return chr(hexdec($matches[1]));},
    
    	
    	$replace);
    736 if( $debug ) trigger_error( '$replace: '.hppre($replace) );
    
    naplácal jsem tam triggery, abych odsledoval stavy proměnných ( xdebug nemám, neumím , no... ) a výstup je tento :
     time :+ 0,2523 s : USER : V souboru /data/srv/www/sqmail/functions/mime.php na řádce 729
    $replace:
    
    Marie Kratochv=EDlov=E1
    
    .
    time :+ 0,2523 s : USER : V souboru /data/srv/www/sqmail/functions/mime.php na řádce 732
    konverze : ED na 237 - í.
    time :+ 0,2523 s : USER : V souboru /data/srv/www/sqmail/functions/mime.php na řádce 732
    konverze : E1 na 225 - á.
    time :+ 0,2523 s : USER : V souboru /data/srv/www/sqmail/functions/mime.php na řádce 736
    $replace:
    
    .
    

    Čili z $replace zůstane jen nový řádek ( podle všeho ).

    Když modifikuji callback funkci, aby vracela jen hexdec($matches[1]), tak to funguje, samozřejmě v stringu jsou sprostá čísla, ale převod vrací výraz, kde je vidět, že se vstupem se něco - podle očekávání - dělo. Funkce chr to ale zabije a výsledkem je prázdný string. Mám tu php7.? na ubuntu bionic. Čumím na to už tři hodiny, a nevidím nic, co by mně navedlo k opravě tohoto kousku kódu.

    hppre je moje funkce uzavírající print_r( cosik, 1 ) do <pre> tagu ...

    Mimochodem jde o knihovnu z Squirrellmailu. ( no, nebudete věřit, ale naše starší kolegyně nechtějí jiný, ač jim nabízím přejít na mnohem funkčnější Roudcube ... ) to jen tak mimochodem.

    Děkuji předem za nasměrování k řešení uvedeného problému.

    Milan.

    Řešení dotazu:


    Odpovědi

    6.1.2020 17:37 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Náhrada řetězde preg_replace_callback nefunguje
    Vyzkoušej funkci quoted_printable_decode().

    BTW: nemáš tam náhodou problém s indexy? V PHP jsou od nuly...
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    6.1.2020 17:49 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Náhrada řetězde preg_replace_callback nefunguje
    Ještě jeden poznatek: Nikde neuvádíš kódování. String je zřejmě v ISO-Latin-2 nebo ve Windows-1250, ale PHP7 má defaultní sadu UTF-8.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    6.1.2020 18:34 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Náhrada řetězde preg_replace_callback nefunguje
    Jaký význam má kódováni ? preg_replace zajímá kódování ?

    Ten kód převádí QP "escapované" znay do bytestringové podoby. Pokud by preg_replace fungoval v multibyte, pak by ho to mohlo rozhodit, to ano, a taky by to vysvětlovalo, proč při vyhození char() přece jen výstup nějaký byl ... ale zkoušet můžu až zítra.

    V tom programu se nastavuje setlocale na češtinu cs_CZ.UTF8 ( tedy dle configu ) někde brzy ze začátku ..

    Nevím, co mám zkusit ?
    Řešení 1× (Milan Uhrák (tazatel))
    6.1.2020 23:56 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Náhrada řetězde preg_replace_callback nefunguje
    echo iconv('windows-1250', 'UTF-8', $replace);
    
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    8.1.2020 12:15 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Náhrada řetězde preg_replace_callback nefunguje
    Abych své hodnocení ( řešení ) vysvětlil, to, co tiskl print_r bylo jen nereprezentovatelné, proto netiskl nic. strlen( $replace ) ale hodil 19, čili jsem celou dobu bloudil v mlhách omylu.

    Děkuji za nakopnutí.

    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.