Náhrada řetězde preg_re place_callback nefunguje
Milan Uhrak <[email protected]> Mon, 6 Jan 2020 15:08:42 +0100 (CET)
| Newsgroups | gmane.user-groups.linux.czech |
|---|---|
| Message-ID | <[email protected]> |
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.
Zobrazit: http://www.abclinuxu.cz/poradna/programovani/show/452118