Diskuze: preg_replace
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, kdežto funkce str_replace() nahradí jeden konkrétní text za jiný, funkce preg_replace() umožňuje používat tzv. regulární výrazy. To je zjednodušeně řečeno maska, podle které se bude v textu vyhledávat.
Následující příklad kupříkladu nahradí všechny číslice ve stringu $text za plus:
$text = preg_replace('/[0-9]/', '+', $text);
Jestliže by si nepoužil regulární výraz, musel by si pro docílení stejného efektu psát něco takového:
$text = str_replace('0', '+', $text);
$text = str_replace('1', '+', $text);
$text = str_replace('2', '+', $text);
$text = str_replace('3', '+', $text);
$text = str_replace('4', '+', $text);
$text = str_replace('5', '+', $text);
$text = str_replace('6', '+', $text);
$text = str_replace('7', '+', $text);
$text = str_replace('8', '+', $text);
$text = str_replace('9', '+', $text);
Samotná problematika regulárních výrazů je trochu složitější, takže doporučuju na toto téma přečíst nějaký článek.
Děkuji moc za objasnění a za odkaz. Stránku jsem si přečetl a teď tomu daleko více rozumím, než předtím.
Ještě jednou děkuji.
Jen doplním, že není třeba psát tolik str_replace, str_replace bere v parametru i pole, takže funguje i toto:
$numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$text = str_replace($numbers, '+', $text);
Zobrazeno 4 zpráv z 4.