Notice: A non well formed numeric value encountered in /var/www/clients/client2/web3/web/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /var/www/clients/client2/web3/web/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Po dlouhé době jsem musel řešit zajímavý problém v regulárním výraze – jak nahradit anglické uvozovky českými. Klasická česká uvozovka je pomocí html entit zapsaná takto: „ a “ a jedná se o znaky „ a “. Většina lidí ale používá anglické uvozovky, tedy “ (").

Musím říct, správně prohodit tyto uvozovky v html dokumentu není zase tak jednoduché. Html značky totiž mohou obsahovat atributy a ty se standardně píší s „. Jak na to tedy? Rychlá a celkem účinná metoda jak je prohodit je použití regulárního výrazu. Lépe řečeno dvou výrazů.

První výraz najde text mimo tagy a druhý najde uvozovky. Pak už stačí správně text upravit a máme vyhráno.

Je zde využitá funkce preg_replace_callback, která umožňuje vytvoření vlastních pravidel při nahrazování dat pomocí regulárních výrazů.