From d97c1ea7cb68c36a7caf0fafc12ba770da7d1d40 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Wed, 21 Feb 2007 12:32:29 +0000
Subject: [PATCH] "integration partielle de #329 (supprimer les ereg_replace,
 chtitux)"

---
 ecrire/balise/formulaire_inscription.php |  4 ++--
 ecrire/exec/aide_index.php               |  2 +-
 ecrire/exec/install.php                  |  2 +-
 ecrire/exec/message.php                  |  8 ++++----
 ecrire/exec/recherche.php                |  2 +-
 ecrire/exec/synchro.php                  |  2 +-
 ecrire/inc/acces.php                     |  6 +++---
 ecrire/inc/agenda.php                    |  6 +++---
 ecrire/inc/auth_ldap.php                 |  2 +-
 ecrire/inc/charsets.php                  |  2 +-
 ecrire/inc/cookie.php                    |  4 ++--
 ecrire/inc/documents.php                 |  2 +-
 ecrire/inc/envoyer_mail.php              |  6 +++---
 ecrire/inc/extra.php                     |  4 ++--
 ecrire/inc/filtres.php                   | 20 ++++++++++----------
 ecrire/inc/filtres_images.php            |  4 ++--
 ecrire/inc/getdocument.php               |  6 +++---
 ecrire/inc/import.php                    |  2 +-
 ecrire/inc/indexation.php                |  2 +-
 ecrire/inc/texte.php                     | 20 ++++++++++----------
 ecrire/public/balises.php                |  2 +-
 ecrire/public/compiler.php               | 12 ++++++------
 22 files changed, 60 insertions(+), 60 deletions(-)

diff --git a/ecrire/balise/formulaire_inscription.php b/ecrire/balise/formulaire_inscription.php
index 8b6f8dfd2a..7624aebb78 100644
--- a/ecrire/balise/formulaire_inscription.php
+++ b/ecrire/balise/formulaire_inscription.php
@@ -195,12 +195,12 @@ function envoyer_inscription_dist($ids, $nom, $mode, $id) {
 function test_login($nom, $mail) {
 	include_spip('inc/charsets');
 	$nom = strtolower(translitteration($nom));
-	$login_base = ereg_replace("[^a-zA-Z0-9_]", "_", $nom);
+	$login_base = preg_replace("/[^\w\d_]/", "_", $nom);
 
 	// il faut eviter que le login soit vraiment trop court
 	if (strlen($login_base) < 3) {
 		$mail = strtolower(translitteration(preg_replace('/@.*/', '', $mail)));
-		$login_base = ereg_replace("[^a-zA-Z0-9]", "_", $nom);
+		$login_base = preg_replace("/[^\w\d]/", "_", $nom);
 	}
 	if (strlen($login_base) < 3)
 		$login_base = 'user';
diff --git a/ecrire/exec/aide_index.php b/ecrire/exec/aide_index.php
index 35a244530c..0d582414c1 100644
--- a/ecrire/exec/aide_index.php
+++ b/ecrire/exec/aide_index.php
@@ -207,7 +207,7 @@ jQuery(function(){
 
 	$html = justifier($html . $suite );
 	// Remplacer les liens externes par des liens ouvrants (a cause des frames)
-	$html = ereg_replace('<a href="(http://[^"]+)"([^>]*)>', '<a href="\\1"\\2 class="target_blank">', $html);
+	$html = preg_replace('@<a href="(http://[^"]+)"([^>]*)>@', '<a href="\\1"\\2 class="target_blank">', $html);
 
 	echo $html, '</body>';
 }
diff --git a/ecrire/exec/install.php b/ecrire/exec/install.php
index 6b112a4e16..100c81d9bb 100644
--- a/ecrire/exec/install.php
+++ b/ecrire/exec/install.php
@@ -97,7 +97,7 @@ function login_hebergeur() {
 	// Altern
 	else if (ereg('altern\.com$', $SERVER_NAME)) {
 		ereg('([^.]*\.[^.]*)$', $HTTP_HOST, $regs);
-		$login_hebergeur = ereg_replace('[^a-zA-Z0-9]', '_', $regs[1]);
+		$login_hebergeur = preg_replace('[^\w\d]', '_', $regs[1]);
 	}
 	// Free
 	else if (ereg('(.*)\.free\.fr$', $SERVER_NAME, $regs)) {
diff --git a/ecrire/exec/message.php b/ecrire/exec/message.php
index fe7286f4cf..98aa94e8d2 100644
--- a/ecrire/exec/message.php
+++ b/ecrire/exec/message.php
@@ -152,10 +152,10 @@ function http_ajouter_participants($ze_auteurs, $id_message)
 			}
 
 			if ($statut_auteur != $statut_old) {
-				$s =ereg_replace("0minirezo", _T('info_statut_administrateur'), $statut_auteur);
-				$s=ereg_replace("1comite", _T('info_statut_redacteur'), $s);
-				$s=ereg_replace("2redac", _T('info_statut_redacteur'), $s);
-				$s=ereg_replace("5poubelle", _T('info_statut_efface'), $s);
+				$s =str_replace(
+					array("0minirezo","1comite","2redac","5poubelle"),
+					array(_T('info_statut_administrateur'),_T('info_statut_redacteur'),_T('info_statut_redacteur'), _T('info_statut_efface')),
+					$statut_auteur);
 				$res .=  "\n<option value=\"x\"></option>";
 				$res .=  "\n<option value=\"x\"> " . $s . 's</option>';
 			}
diff --git a/ecrire/exec/recherche.php b/ecrire/exec/recherche.php
index 0e8ff3d133..f1229c14ad 100644
--- a/ecrire/exec/recherche.php
+++ b/ecrire/exec/recherche.php
@@ -64,7 +64,7 @@ function exec_recherche_dist()
 	$query_articles['WHERE']= ($testnum ? "(articles.id_article = $recherche)" :'') . $where;
 	$query_breves['WHERE']= ($testnum ? "(id_breve = $recherche)" : '') . $where;
 	$query_rubriques['WHERE']= ($testnum ? "(id_rubrique = $recherche)" : '') . $where;
-	$query_sites['WHERE']= ($testnum ? "(id_syndic = $recherche)" : '') . ereg_replace("titre LIKE", "nom_site LIKE",$where);
+	$query_sites['WHERE']= ($testnum ? "(id_syndic = $recherche)" : '') . preg_replace("/titre LIKE/", "nom_site LIKE",$where);
 
 	$query_articles['ORDER BY']= "date_modif DESC";
 	$query_breves['ORDER BY']= "maj DESC";
diff --git a/ecrire/exec/synchro.php b/ecrire/exec/synchro.php
index d04776a7e6..17824bd709 100644
--- a/ecrire/exec/synchro.php
+++ b/ecrire/exec/synchro.php
@@ -26,7 +26,7 @@ function afficher_liens_calendrier($lien, $icone, $texte) {
 	echo "</td>";
 	echo "<td> &nbsp; </td>";
 	echo "<td style='width: 200px;'>";
-	icone_horizontale (_T('ical_methode_webcal'), ereg_replace("https?://", "webcal://", $lien), "calendrier-24.gif");
+	icone_horizontale (_T('ical_methode_webcal'), preg_replace("@https?://@", "webcal://", $lien), "calendrier-24.gif");
 	echo "</td></tr></table>";
 	echo fin_cadre_enfonce();
 }
diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php
index 76f1d6b207..85d0ba2250 100644
--- a/ecrire/inc/acces.php
+++ b/ecrire/inc/acces.php
@@ -35,9 +35,9 @@ function creer_pass_aleatoire($longueur = 8, $sel = "") {
 		$pass .= $x;
 		$s = substr($s, 2);
 	}
-	$pass = ereg_replace("[./]", "a", $pass);
-	$pass = ereg_replace("[I1l]", "L", $pass);
-	$pass = ereg_replace("[0O]", "o", $pass);
+	$pass = preg_replace("@[./]@", "a", $pass);
+	$pass = preg_replace("@[I1l]@", "L", $pass);
+	$pass = preg_replace("@[0O]@", "o", $pass);
 	return $pass;
 }
 
diff --git a/ecrire/inc/agenda.php b/ecrire/inc/agenda.php
index 9b83c559c0..c3e5680c2f 100644
--- a/ecrire/inc/agenda.php
+++ b/ecrire/inc/agenda.php
@@ -701,7 +701,7 @@ function http_calendrier_ics($annee, $mois, $jour,$echelle, $partie_cal,  $large
 			$perso = substr($evenement['ATTENDEE'], 0,strpos($evenement['ATTENDEE'],'@'));
 			$lieu = isset($evenement['LOCATION']) ?
 				$evenement['LOCATION'] : '';
-			$sum = ereg_replace(' +','&nbsp;', typo($evenement['SUMMARY']));
+			$sum = preg_replace('/ \+/','&nbsp;', typo($evenement['SUMMARY']));
 			if (!$sum) { $sum = $desc; $desc = '';}
 			if (!$sum) { $sum = $lieu; $lieu = '';}
 			if (!$sum) { $sum = $perso; $perso = '';}
@@ -866,7 +866,7 @@ function http_calendrier_avec_heure($evenement, $amj)
 	
 	$desc = propre($evenement['DESCRIPTION']);
 	$sum = $evenement['SUMMARY'];
-	$sum = ereg_replace(' +','&nbsp;', typo($sum));
+	$sum = preg_replace('/ \+/','&nbsp;', typo($sum));
 	if (!$sum) $sum = $desc;
 	if ($lieu = $evenement['LOCATION'])
 	  $sum .= '<br />' . $lieu;
@@ -941,7 +941,7 @@ function http_calendrier_navigation($annee, $mois, $jour, $echelle, $partie_cal,
 	$mois_today = $today["mon"];
 	$annee_today = $today["year"];
 
-	$id = 'nav-agenda' .ereg_replace('[^A-Za-z0-9]', '', $ancre);
+	$id = 'nav-agenda' .preg_replace('/[^\w\d]/', '', $ancre);
 
 	return 
 	  "\n<div class='navigation-calendrier calendrier-moztop8'" 
diff --git a/ecrire/inc/auth_ldap.php b/ecrire/inc/auth_ldap.php
index f2ad8a5434..e6f45f8243 100644
--- a/ecrire/inc/auth_ldap.php
+++ b/ecrire/inc/auth_ldap.php
@@ -43,7 +43,7 @@ function auth_ldap_search($login, $pass)
 
 	// Attributs testes pour egalite avec le login
 	$atts = array('sAMAccountName', 'uid', 'login', 'userid', 'cn', 'sn');
-	$login_search = ereg_replace("[^-@._[:space:][:alnum:]]", "", $login); // securite
+	$login_search = preg_replace("/[^-@._\s\d\w]/", "", $login); // securite
 
 	// Tenter une recherche pour essayer de retrouver le DN
 	reset($atts);
diff --git a/ecrire/inc/charsets.php b/ecrire/inc/charsets.php
index eaf944c6f9..067922ba67 100644
--- a/ecrire/inc/charsets.php
+++ b/ecrire/inc/charsets.php
@@ -430,7 +430,7 @@ function utf_8_to_unicode($source) {
 				}
 				$thisPos++;
 			}
-			$encodedLetter = "&#". ereg_replace('^0+', '', $decimalCode) . ';';
+			$encodedLetter = "&#". preg_replace('/^0+/', '', $decimalCode) . ';';
 			$encodedString .= $encodedLetter;
 		}
 	}
diff --git a/ecrire/inc/cookie.php b/ecrire/inc/cookie.php
index 158716b963..307b2eae84 100644
--- a/ecrire/inc/cookie.php
+++ b/ecrire/inc/cookie.php
@@ -19,7 +19,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 //
 // http://doc.spip.org/@spip_setcookie
 function spip_setcookie ($name='', $value='', $expire=0, $path='AUTO', $domain='', $secure='') {
-	$name = ereg_replace ('^spip_', $GLOBALS['cookie_prefix'].'_', $name);
+	$name = preg_replace ('/^spip_/', $GLOBALS['cookie_prefix'].'_', $name);
 	if ($path == 'AUTO') $path=$GLOBALS['cookie_path'];
 
 	if ($secure)
@@ -47,7 +47,7 @@ function recuperer_cookies_spip($cookie_prefix) {
 	}
 	foreach ($_COOKIE as $name => $value) {
 		if (substr($name,0,$prefix_long)==$cookie_prefix) {
-			$spipname = ereg_replace ('^'.$cookie_prefix.'_', 'spip_', $name);
+			$spipname = preg_replace ('/^'.$cookie_prefix.'_/', 'spip_', $name);
 			$_COOKIE[$spipname] = $value;
 			$GLOBALS[$spipname] = $value;
 		}
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index 697e1daa9c..b8ae02240e 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -157,7 +157,7 @@ function afficher_documents_colonne($id, $type="article",$script=NULL) {
 		$res = spip_query("SELECT DISTINCT id_vignette FROM spip_documents WHERE id_document in (".join(',', $documents_lies).")");
 		while ($v = spip_fetch_array($res))
 			$vignettes[]= $v['id_vignette'];
-		$docs_exclus = ereg_replace('^,','',join(',', $vignettes).','.join(',', $documents_lies));
+		$docs_exclus = preg_replace('/^,/','',join(',', $vignettes).','.join(',', $documents_lies));
 
 		if ($docs_exclus) $docs_exclus = "AND l.id_document NOT IN ($docs_exclus) ";
 	} else $docs_exclus = '';
diff --git a/ecrire/inc/envoyer_mail.php b/ecrire/inc/envoyer_mail.php
index cfc4077b6c..2dd0812aac 100644
--- a/ecrire/inc/envoyer_mail.php
+++ b/ecrire/inc/envoyer_mail.php
@@ -132,9 +132,9 @@ function inc_envoyer_mail_dist($email, $sujet, $texte, $from = "", $headers = ""
 		$texte = wordwrap($texte);
 
 	if (os_serveur == 'windows') {
-		$texte = ereg_replace ("\r*\n","\r\n", $texte);
-		$headers = ereg_replace ("\r*\n","\r\n", $headers);
-		$sujet = ereg_replace ("\r*\n","\r\n", $sujet);
+		$texte = preg_replace ("@\r*\n@","\r\n", $texte);
+		$headers = preg_replace ("@\r*\n@","\r\n", $headers);
+		$sujet = preg_replace ("@\r*\n@","\r\n", $sujet);
 	}
 
 	switch($hebergeur) {
diff --git a/ecrire/inc/extra.php b/ecrire/inc/extra.php
index 5d31aa2e94..65997da58d 100644
--- a/ecrire/inc/extra.php
+++ b/ecrire/inc/extra.php
@@ -145,7 +145,7 @@ function extra_form($extra, $type, $ensemble='') {
 			// complique car la valeur n'esst pas envoyee ar le nav si unchecked
 			case "case":
 			case "checkbox":
-				$affiche = ereg_replace("<br />$", "&nbsp;", $affiche);
+				$affiche = preg_replace("@<br />$@", "&nbsp;", $affiche);
 				$affiche .= "<input type='hidden' name='suppl_$champ' value='1' /><input type='checkbox' name='suppl_{$champ}_check'";
 				if ($extra[$champ] == 'true')
 					$affiche .= " checked";
@@ -353,7 +353,7 @@ function extra_affichage($extra, $type) {
 						else if ($contenu[$i] <> '')
 							$contenu_ = "Choix incoh&eacute;rents, "
 							."v&eacute;rifiez la configuration... ";
-				$contenu = ereg_replace(", $", "", $contenu_);
+				$contenu = preg_replace("/, $/", "", $contenu_);
 				break;
 		}
 		if ($filtre != 'brut' AND function_exists($filtre))
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index 3bc72523b8..650a499798 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -192,8 +192,8 @@ function taille_image($img) {
 	// $meme remplace $logo, pour unifier certains fichiers dont on sait qu'ils ont la meme taille
 	$mem = $logo;
 	if (strrpos($mem,"/") > 0) $mem = substr($mem, strrpos($mem,"/")+1, strlen($mem));
-	$mem = ereg_replace("\-flip\_v|\-flip\_h", "", $mem);
-	$mem = ereg_replace("\-nb\-[0-9]+(\.[0-9]+)?\-[0-9]+(\.[0-9]+)?\-[0-9]+(\.[0-9]+)?", "", $mem);
+	$mem = preg_replace(",\-flip\_v|\-flip\_h,", "", $mem);
+	$mem = preg_replace(",\-nb\-[0-9]+(\.[0-9]+)?\-[0-9]+(\.[0-9]+)?\-[0-9]+(\.[0-9]+)?,", "", $mem);
 
 	$srcsize = false;
 	if (isset($largeur_img[$mem]))
@@ -345,7 +345,7 @@ function supprimer_tags($texte, $rempl = "") {
 // Convertit les <...> en la version lisible en HTML
 // http://doc.spip.org/@echapper_tags
 function echapper_tags($texte, $rempl = "") {
-	$texte = ereg_replace("<([^>]*)>", "&lt;\\1&gt;", $texte);
+	$texte = preg_replace("/<([^>]*)>/", "&lt;\\1&gt;", $texte);
 	return $texte;
 }
 
@@ -375,9 +375,9 @@ function liens_ouvrants ($texte) {
 // Transformer les sauts de paragraphe en simples passages a la ligne
 // http://doc.spip.org/@PtoBR
 function PtoBR($texte){
-	$texte = eregi_replace("</p>", "\n", $texte);
-	$texte = eregi_replace("<p([[:space:]][^>]*)?".">", "<br />", $texte);
-	$texte = ereg_replace("^[[:space:]]*<br />", "", $texte);
+	$texte = preg_replace("@</p>@i", "\n", $texte);
+	$texte = preg_replace("@<p([\s][^>]*)?".">@i", "<br />", $texte);
+	$texte = preg_replace("@^[\s]*<br />@", "", $texte);
 	return $texte;
 }
 
@@ -510,7 +510,7 @@ function extraire_date($texte) {
 function antispam($texte) {
 	include_spip('inc/acces');
 	$masque = creer_pass_aleatoire(3);
-	return ereg_replace("@", " $masque ", $texte);
+	return preg_replace("/@/", " $masque ", $texte);
 }
 
 // |sinon{rien} : affiche "rien" si la chaine est vide, affiche la chaine si non vide
@@ -548,7 +548,7 @@ function normaliser_date($date) {
 		if (ereg("^([12][0-9]{3})([-/]00)?( [-0-9:]+)?$", $date, $regs))
 			$date = $regs[1]."-01-01".$regs[3];
 		else if (ereg("^([12][0-9]{3}[-/][01]?[0-9])([-/]00)?( [-0-9:]+)?$", $date, $regs))
-			$date = ereg_replace("/","-",$regs[1])."-01".$regs[3];
+			$date = preg_replace("@/@","-",$regs[1])."-01".$regs[3];
 		else
 			$date = date("Y-m-d H:i:s", strtotime($date));
 	}
@@ -902,8 +902,8 @@ function filtrer_ical($texte) {
 	#include_spip('inc/charsets');
 	$texte = html2unicode($texte);
 	$texte = unicode2charset(charset2unicode($texte, $GLOBALS['meta']['charset'], 1), 'utf-8');
-	$texte = ereg_replace("\n", " ", $texte);
-	$texte = ereg_replace(",", "\,", $texte);
+	$texte = preg_replace("/\n/", " ", $texte);
+	$texte = preg_replace("/,/", "\,", $texte);
 
 	return $texte;
 }
diff --git a/ecrire/inc/filtres_images.php b/ecrire/inc/filtres_images.php
index 7702b4bc96..50c3ead1f1 100644
--- a/ecrire/inc/filtres_images.php
+++ b/ecrire/inc/filtres_images.php
@@ -2273,14 +2273,14 @@ function printWordWrapped($image, $top, $left, $maxWidth, $font, $couleur, $text
 	// Deux passes pour recuperer, d'abord, largeur_ligne
 	// necessaire pour alignement right et center
 	foreach ($lines as $line) {
-		$line = ereg_replace("~", " ", $line);
+		$line = preg_replace("/~/", " ", $line);
 		$dimensions = imageftbbox($textSize, 0, $font, $line, array());
 		$largeur_ligne = $dimensions[2] - $dimensions[0];
 		if ($largeur_ligne > $largeur_max) $largeur_max = $largeur_ligne;
 	}
 
 	foreach ($lines as $line) {
-		$line = ereg_replace("~", " ", $line);
+		$line = preg_replace("/~/", " ", $line);
 		$dimensions = imageftbbox($textSize, 0, $font, $line, array());
 		$largeur_ligne = $dimensions[2] - $dimensions[0];
 		if ($align == "right") $left_pos = $largeur_max - $largeur_ligne;
diff --git a/ecrire/inc/getdocument.php b/ecrire/inc/getdocument.php
index 047ca2ecde..e4eff1df08 100644
--- a/ecrire/inc/getdocument.php
+++ b/ecrire/inc/getdocument.php
@@ -50,9 +50,9 @@ function effacer_repertoire_temporaire($nom) {
 function copier_document($ext, $orig, $source) {
 
 	$dir = creer_repertoire_documents($ext);
-	$dest = ereg_replace("[^.a-zA-Z0-9_=-]+", "_", 
-			translitteration(ereg_replace("\.([^.]+)$", "", 
-						      ereg_replace("<[^>]*>", '', basename($orig)))));
+	$dest = preg_replace("/[^._=-\w\d]+", "_", 
+			translitteration(preg_replace("/\.([^.]+)$/", "", 
+						      preg_replace("/<[^>]*>/", '', basename($orig)))));
 
 	// ne pas accepter de noms de la forme -r90.jpg qui sont reserves
 	// pour les images transformees par rotation (action/documenter)
diff --git a/ecrire/inc/import.php b/ecrire/inc/import.php
index 9ae9e6cc5f..4012ba3321 100644
--- a/ecrire/inc/import.php
+++ b/ecrire/inc/import.php
@@ -314,7 +314,7 @@ function affiche_progression_javascript($abs_pos,$size, $table="") {
 		if (trim($table))
 			echo "document.progression.recharge.value='$table';\n";
 		if (!$size)
-			$taille = ereg_replace("&nbsp;", " ", taille_en_octets($abs_pos));
+			$taille = preg_replace("/&nbsp;/", " ", taille_en_octets($abs_pos));
 		else
 			$taille = floor(100 * $abs_pos / $size)." %";
 		echo "document.progression.taille.value='$taille';\n";
diff --git a/ecrire/inc/indexation.php b/ecrire/inc/indexation.php
index 6da949206e..e325cd48be 100644
--- a/ecrire/inc/indexation.php
+++ b/ecrire/inc/indexation.php
@@ -188,7 +188,7 @@ function mots_indexation($texte, $min_long = 3) {
 
 	// Supprimer les caracteres de ponctuation, les guillemets...
 	$e = "],:;*\"!\r\n\t\\/)}{[|@<>$%'`?\~.^(";
-	$texte = strtr($texte, $e, ereg_replace('.', ' ', $e));
+	$texte = strtr($texte, $e, preg_replace('/./', ' ', $e));
 
 	//delete  +\- not at the beginning of a word
 	$texte = preg_replace(",(?:\S)[\-+],"," ",$texte);
diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index 209cfb3914..0badfe5ffe 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -121,7 +121,7 @@ function traiter_echap_code_dist($regs) {
 	$echap = entites_html($regs[3]);
 	// supprimer les sauts de ligne debut/fin
 	// (mais pas les espaces => ascii art).
-	$echap = ereg_replace("^\n+|\n+$", "", $echap);
+	$echap = preg_replace("/^\n+|\n+$/", "", $echap);
 
 	// ne pas mettre le <div...> s'il n'y a qu'une ligne
 	if (is_int(strpos($echap,"\n"))) {
@@ -274,11 +274,11 @@ function couper($texte, $taille=50) {
 	$texte = str_replace("\r", "\n", $texte);
 
 	// sauts de ligne et paragraphes
-	$texte = ereg_replace("\n\n+", "\r", $texte);
-	$texte = ereg_replace("<(p|br)( [^>]*)?".">", "\r", $texte);
+	$texte = preg_replace("/\n\n+/" "\r", $texte);
+	$texte = preg_replace("/<(p|br)( [^>]*)?".">/", "\r", $texte);
 
 	// supprimer les traits, lignes etc
-	$texte = ereg_replace("(^|\r|\n)(-[-#\*]*|_ )", "\r", $texte);
+	$texte = preg_replace("/(^|\r|\n)(-[-#\*]*|_ )/", "\r", $texte);
 
 	// supprimer les tags
 	$texte = supprimer_tags($texte);
@@ -302,14 +302,14 @@ function couper($texte, $taille=50) {
 
 	// couper au mot precedent
 	$long = spip_substr($texte, 0, max($taille-4,1));
-	$court = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*\n?$", "\\1", $long);
+	$court = preg_replace("/([^\s][\s]+)[^\s]*\n?$/", "\\1", $long);
 	$points = '&nbsp;(...)';
 
 	// trop court ? ne pas faire de (...)
 	if (spip_strlen($court) < max(0.75 * $taille,2)) {
 		$points = '';
 		$long = spip_substr($texte, 0, $taille);
-		$texte = ereg_replace("([^[:space:]][[:space:]]+)[^[:space:]]*$", "\\1", $long);
+		$texte = preg_replace("/([^\s][\s]+)[^\s]*\n?$/", "\\1", $long);
 		// encore trop court ? couper au caractere
 		if (spip_strlen($texte) < 0.75 * $taille)
 			$texte = $long;
@@ -320,7 +320,7 @@ function couper($texte, $taille=50) {
 		$points = '';
 
 	// remettre les paragraphes
-	$texte = ereg_replace("\r+", "\n\n", $texte);
+	$texte = preg_replace("/\r+/", "\n\n", $texte);
 
 	// supprimer l'eventuelle entite finale mal coupee
 	$texte = preg_replace('/&#?[a-z0-9]*$/S', '', $texte);
@@ -509,7 +509,7 @@ function typo_en($letexte) {
 	$letexte = preg_replace($cherche1, $remplace1, $letexte);
 
 	$letexte = str_replace("&nbsp;", "~", $letexte);
-	$letexte = ereg_replace(" *~+ *", "~", $letexte);
+	$letexte = preg_replace("/ *~+ */", "~", $letexte);
 
 	$cherche2 = array(
 		'/([^-\n]|^)--([^-]|$)/',
@@ -1252,8 +1252,8 @@ function traiter_raccourcis($letexte) {
 	$letexte, $regs, PREG_SET_ORDER)) {
 		foreach ($regs as $reg) {
 			$lecode = preg_replace(",\r\n?,S", "\n", $reg[2]);
-			$lecode = ereg_replace("\n[[:space:]]*\n", "\n&nbsp;\n",$lecode);
-			$lecode = "<div class=\"spip_poesie\">\n<div>".ereg_replace("\n+", "</div>\n<div>", trim($lecode))."</div>\n</div>\n\n";
+			$lecode = preg_replace("/\n[\s]*\n/", "\n&nbsp;\n",$lecode);
+			$lecode = "<div class=\"spip_poesie\">\n<div>".preg_replace("/\n+/", "</div>\n<div>", trim($lecode))."</div>\n</div>\n\n";
 			$letexte = str_replace($reg[0], $lecode, $letexte);
 		}
 	}
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index 3b10b36311..bb38020c36 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -783,7 +783,7 @@ function calculer_balise_logo_dist ($p) {
 			$code_lien = str_replace('#'.$match[2], "'.".$c.".'", $code_lien);
 		}
 		// supprimer les '' disgracieux
-		$code_lien = ereg_replace("^''\.|\.''$", "", $code_lien);
+		$code_lien = preg_replace("@^''\.|\.''$@", "", $code_lien);
 	}
 
 	if ($flag_fichier)
diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php
index 529e735cc0..a241ff0d1a 100644
--- a/ecrire/public/compiler.php
+++ b/ecrire/public/compiler.php
@@ -185,7 +185,7 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) {
 
 
 	if (count($boucle->separateur))
-	  $code_sep = ("'" . ereg_replace("'","\'",join('',$boucle->separateur)) . "'"); 
+	  $code_sep = ("'" . preg_replace("/'/","\'",join('',$boucle->separateur)) . "'"); 
 
 	// La boucle doit-elle selectionner la langue ?
 	// -. par defaut, les boucles suivantes le font
@@ -471,7 +471,7 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) {
 		switch($p->type) {
 		// texte seul
 		case 'texte':
-			$code = "'".ereg_replace("([\\\\'])", "\\\\1", $p->texte)."'";
+			$code = "'".preg_replace("/([\\\\'])/", "\\\\1", $p->texte)."'";
 
 			$commentaire= strlen($p->texte) . " signes";
 			$avant='';
@@ -483,9 +483,9 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) {
 			$code = "";
 			foreach($p->traductions as $k => $v) {
 			  $code .= ",'" .
-			    ereg_replace("([\\\\'])", "\\\\1", $k) .
+			    preg_replace("/([\\\\'])/", "\\\\1", $k) .
 			    "' => '" .
-			    ereg_replace("([\\\\'])", "\\\\1", $v) .
+			    preg_replace("/([\\\\'])/", "\\\\1", $v) .
 			    "'";
 			}
 			$code = "multi_trad(array(" .
@@ -630,7 +630,7 @@ function code_boucle(&$boucles, $id, $nom)
 	  }
 
 	$pretty = "BOUCLE$id(".strtoupper($boucle->type_requete) . ")" .
-		ereg_replace("[\r\n]", " ", $pretty);
+		preg_replace("/[\r\n]/", " ", $pretty);
 
 	return $pretty;
 }
@@ -751,7 +751,7 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) {
 		if (!function_exists($f)) $f = 'boucle_DEFAUT';
 		if (!function_exists($f)) $f = 'boucle_DEFAUT_dist';
 		$boucles[$id]->return = 
-			"function BOUCLE" . ereg_replace("-","_",$id) . $nom .
+			"function BOUCLE" . preg_replace("/-/","_",$id) . $nom .
 			'(&$Cache, &$Pile, &$doublons, &$Numrows, $SP) {' .
 			$f($id, $boucles) .
 			"\n}\n\n";
-- 
GitLab