3v4l.org

run code in 300+ PHP versions simultaneously
<?php $str = "Venez découvrir Rose Palace dans le Parc du Domaine de Vizille. L'artiste-plasticienne Viviane Rabaud noue, assemble, recompose à travers des gestes simples et répétitifs. Elle joue avec les matières, dialogue avec le lieu à travers son axe de travail : le tissage... Avec la métamorphose Rose Palace, elle interroge l'histoire et s'approprie le symbole de la Bastille."; $str = htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); $str = str_replace("\n", '<br>', $str); $array = array('m' => array('TITLE' => 'mètre(s)','LANG' => 'fr', 'TAGNAME' => 'abbr')); echo '<pre>' ; foreach ($array as $key => $value) { switch ($key) { case '%' : $str = preg_replace('/(?!(<[^>]+))(%)(?!([^<]*>))/ums', '$1<' . $value['TAGNAME'] . ' lang="' . $value['LANG'] . '" title="' . htmlspecialchars($value['TITLE'], ENT_QUOTES, 'UTF-8') . '">$2</' . $value['TAGNAME'] . '>$3', $str); break; case '@' : $str = preg_replace('/(?!(<[^>]+))(@)(?!([^<]*>))/ums', '$1<' . $value['TAGNAME'] . ' lang="' . $value['LANG'] . '" title="' . htmlspecialchars($value['TITLE'], ENT_QUOTES, 'UTF-8') . '">$2</' . $value['TAGNAME'] . '>$3', $str); break; default : $str = preg_replace('/(?!(<[^>]+))(\b' . htmlspecialchars($key, ENT_QUOTES, 'UTF-8') . '\b)(?!([^<]*>))/ums', '$1<' . $value['TAGNAME'] . ' lang="' . $value['LANG'] . '" title="' . htmlspecialchars($value['TITLE'], ENT_QUOTES, 'UTF-8') . '">$2</' . $value['TAGNAME'] . '>$3', $str); break; } } var_dump($array); echo '</pre>' ; echo $str ; ?>

preferences:
55.35 ms | 402 KiB | 5 Q