Zdravim potreboval bych poradit.. Tentokrat to (kupodivu) neni proto, ze by mi neco nefungovalo, ale proto, ze neco funguje jinak nez bych ocekaval :D
Pokud pouziju tuto funkci:
// prvni reseni
$string = preg_replace_callback('/\<code\>(.*)\<\/code>/', create_function('$matches', 'return htmlentities($matches[1]);'), $string);
Tak funguje rychleji nez dvojice techto fci:
// druhe reseni
function EntityMatch($matches)
{
return htmlentities($matches[1]);
}
$string = preg_replace_callback('/\<code\>(.*)\<\/code>/', 'EntityMatch' , $string);
Mereni probihalo na tomto retezci:
$string = "<html><h1>NADPIS</h1>";
$string .= str_repeat("<code><h2>Podnadpis</h2>Tohle je kod v code :-) </code>"
, 10000);
$string .= '</html>';
A opakovani fci bylo cca 100x
Vysledky:
Prvni reseni:
7.33376
7.1168
7.20347
7.19537
7.3473
Prumer: 7.23934
Druhe reseni:
7.23499
7.36259
7.29532
7.06882
7.55375
Prumer: 7,30309
Vysledky mereni jsou orientacni a rozdily jsou nepatrne.. Ale i tak by me zajimalo jak to funguje - jestli napr. ten create function vytvori tu funkci jednou a pak se uz rovnou vola, nebo jestli ji vytvari pokazde znovu.... A navic jak je mozne ze vytvareni nove fce a nasledne pouziti je rychlejsi nez rovnou vyuziti jiz vytvorene fce..