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 18:55 | Nová verze

Po roce vývoje od vydání verze 4.0 a více než 7 400 změnách byla vydána nová stabilní verze 5.0 softwaru, který vytváří aplikační rozhraní umožňující chod aplikací pro Microsoft Windows také pod GNU/Linuxem, Wine (Wikipedie). Z novinek lze zdůraznit moduly ve formátu PE, podporu více monitorů, reimplementaci XAudio2 anebo podporu Vulkanu 1.1. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 1
včera 15:11 | Zajímavý článek

Michal Altair Valášek publikoval na svém blogu návod MQTT server do kapsy: Mosquitto na Orange Pi Zero na postavení vlastního MQTT (MQ Telemetry Transport) serveru s brokerem Mosquitto postaveného na ARM klonu Debianu Armbian na jednodeskovém počítači za deset dolarů Orange Pi Zero a zabezpečeného pomocí TLS certifikátů od Let's Encrypt a uživatelských jmen a hesel.

Ladislav Hagara | Komentářů: 2
20.1. 17:11 | Nová verze

Vyšlo Pharo 8.0. Přináší lepší nástroje pro refactoring či spoluráci s Gitem. Pharo je programovací jazyk a vývojové prostředí s řadou pokročilých vlastností.

Pavel Křivánek | Komentářů: 2
20.1. 13:11 | Pozvánky

Ak pracujete na zaujímavom projekte, zaujíma Vás špecifická téma alebo sa vyznáte o novinkách a trendoch vo svete Pythonu, zdieľajte to s ostatnými. Možnosť prihlásiť sa so svojou témou na PyConSK 2020 je otvorená do 31. 1. 2020.

… více »
RicCo386 | Komentářů: 0
20.1. 10:55 | Komunita

Mozilla.cz informuje (en), že Firefox Preview (kódově Fenix) se blíží svému prvnímu ostřejšímu vydání. Tento zcela nový prohlížeč pro Android nahradí zítra 21. ledna noční verze stávajícího Firefoxu pro Android (kódově Fennec).

Ladislav Hagara | Komentářů: 18
20.1. 06:00 | Zajímavý software

Byl vydán MindForger v nové major verzi 1.50.0. Přehled novinek na GitHubu. MindForger je poznámkový blok, markdown editor a nástroj pro management znalostí.

Ladislav Hagara | Komentářů: 2
19.1. 20:22 | Nová verze

Byla vydána nová stabilní verze 18 open source cloudového systému Nextcloud (Wikipedie). Nová verze tohoto forku ownCloudu přichází s novým názvem Nextcloud Hub a řadou předinstalovaných aplikací (Files, Flow, ONLYOFFICE, Photos, Calendar, Mail, Talk). Podrobnosti i s náhledy a videi v příspěvku na blogu.

Ladislav Hagara | Komentářů: 14
17.1. 19:00 | Komunita

Fedora Magazine informuje, že Fedora CoreOS je již k běžnému používání. Jedná se o nástupce Fedora Atomic Hostu a CoreOS Container Linuxu. Projekt Fedora CoreOS byl představen v červnu 2018. Preview verze byla vydána v červenci 2019.

Ladislav Hagara | Komentářů: 0
17.1. 14:11 | Komunita

Na platformě HackerOne byl spuštěn Kubernetes - Bug Bounty Program aneb program odměn za nalezení bezpečnostních chyb v orchestrátoru kontejnerů Kubernetes. Za nalezení kritické bezpečnostní chyby lze získat odměnu 10 000 dolarů.

Ladislav Hagara | Komentářů: 0
17.1. 13:11 | Pozvánky

Bilanční pražský sraz spolku OpenAlt se koná příští středu 22. 1. 2020 od 18:00 na pražském Andělu v ulici Lidická 337/30Andělském pivovaru. Nezapomeňte s sebou vzít hračky, které vám nadělil Ježíšek, a pochlubit se novinkami, které chystáte v novém roce 2020.

xkucf03 | Komentářů: 2
Zdají se vám sny s IT tématikou?
 (9%)
 (1%)
 (13%)
 (18%)
 (53%)
 (7%)
Celkem 243 hlasů
 Komentářů: 10, poslední 18.1. 16:18
Rozcestník

www.AutoDoc.Cz

Dotaz: Náhrada řetězde preg_replace_callback nefunguje

6.1. 15:08 Milan Uhrák | skóre: 29 | blog: milan_at_ABC
Náhrada řetězde preg_replace_callback nefunguje
Přečteno: 182×
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. 17:37 Kit | skóre: 44 | 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. 17:49 Kit | skóre: 44 | 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. 18:34 Milan Uhrák | skóre: 29 | 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. 23:56 Kit | skóre: 44 | 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. 12:15 Milan Uhrák | skóre: 29 | 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.