Bonjour,
Je cherche à remplacer dans un fichier HTML toutes les lettres "i" par "****".
Je veux que ce remplacement ne s'effectue que pour le texte situé en dehors des balises HTML, par exemple:
<title>Mon titre de page joli</title>
Devient:
<title>Mon t****tre de page jol****</title>
J'ai récupéré un bout de code qui me permet la modification ci-dessus:
$content = preg_replace("'(?!<.*?)i(?![^<>]*?>)'s", "****", $content);
Cela fonctionne plutôt bien, mais lorsqu'il y a du javascript dans le fichier HTML, le code ci-dessus affecte également ce qui se trouve entre les balises javascript. Or je voudrais exclure également tout le code javascript qui se trouve entre deux balises <script...>code javascript</script>.
Par exemple, actuellement, j'obtiens:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| title>mon t****tre</title>
<head>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-4235074-6']);
_gaq.push(['_trackPagev****ew']);
(funct****on() {
var ga = document.createElement('scr****pt'); ga.type = 'text/javascr****pt'; ga.async = true;
ga.src = ('https:' == document.locat****on.protocol ? 'https://ssl' : 'http://www') + '.google-analyt****cs.com/ga.js';
var s = document.getElementsByTagName('scr****pt')[0]; s.parentNode.****nsertBefore(ga, s);
})();
</script>
</head>
<body>
<div id="page">
lorem ****psum dolor s****t
<div id="navigation">
» <a href="lien.php" title="Créer site">Créer s****te ****nternet</a> |
Notez le code javascript que je souhaite préserver, et qui est tout abimé
Je voudrait donc obtenir la même chose que ci-dessus, mais sans altération du code javascript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <title>mon t****tre</title>
<head>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-4235074-6']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div id="page">
lorem ****psum dolor s****t
<div id="navigation">
» <a href="lien.php" title="Créer site">Créer s****te ****nternet</a> |
Je pense que le problème vient du fait que le code javascript est sur plusieurs lignes, mais je n'arrive vraiment pas à voir comment faire
Merci par avance
Partager