Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/12/2011, 19h08   #1
Futur Membre du Club
 
Inscription : juillet 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 81
Points : 17
Points : 17
Par défaut Migration eregi_replace ->preg_replace

Bonjour,

J'ai trouvé une fonction pour compresser mon code html (suppression des espaces, des retours à la ligne, etc.).

Le seul petit problème c'est que cette fonction utilise eregi_replace() qui est maintenant dépassée.

J'aimerais pouvoir trouver un équivalent, je pense en preg_replace(). J'ai fait plusieurs essais pas très concluent...

Voici cette fameuse fonction qu'il faudrait migrer. Elle s'occupe de retirer tous les espaces en trop:

Code :
$chaine = eregi_replace("[ ]+", " ", $chaine);
Est-ce que quelqu'un pourrait me donner l'équivalence?

Merci d'avance!
clement106 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 25/12/2011, 20h01   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
tout est dans la doc :
http://www.php.net/manual/fr/referen...tern.posix.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2011, 20h27   #3
Futur Membre du Club
 
Inscription : juillet 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 81
Points : 17
Points : 17
Merci, c'est bien ce que je pensais, c'est preg_replace.

Le seul souçis c'est que je ne suis pas un pro pour les expressions régulières...

J'ai testé comme celà (trouvé dans la doc):
Code :
1
2
3
4
$str = 'foo   o';
$str = preg_replace('/\s\s+/', ' ', $str);
// Affichera 'foo o'
echo $str;
Ou j'ai essayé de cette manière:

Code :
1
2
3
$str = 'foo   o';
$str = preg_replace('/^ /', ' ', $str);
echo $str;
Les deux ne marchent pas évidement...
clement106 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2011, 21h54   #4
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
Citation:
Les deux ne marchent pas évidement...
comment ça ? les deux marchent, elles retirent bien tout les espaces en trop pour n'en laisser qu'un...
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2011, 22h45   #5
Futur Membre du Club
 
Inscription : juillet 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 81
Points : 17
Points : 17
je t'assure que non...

Exemple:

Code :
1
2
3
$chaine = '<!DOCTYPE HTML><html lang="fr" xmlns:fb="http://www.facebook.com/2008/fbml">    <head>                  <meta charset="utf-8" />';
$chaine = preg_replace('/\s\s+/', ' ', $chaine);
echo $chaine;
clement106 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2011, 22h55   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
ça donne

Code :
<!DOCTYPE HTML><html lang="fr" xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <meta charset="utf-8" />
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 01h19   #7
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
tiens ça fait ce que tu veux (enfin je penses...) :
Code :
1
2
3
4
5
6
7
8
9
$chaine = '<!DOCTYPE HTML><html lang="fr" xmlns:fb="http://www.facebook.com/2008/fbml">    <head>                  <meta charset="utf-8" /> toto    o';
$pattern = array();
$remplace = array();
$pattern[0] = '/([^\>])\s+([^\<])/';
$pattern[1] = '/>\s+</';
$remplace[0] = '$1 $2';
$remplace[1] = '><';
$chaine = preg_replace($pattern, $remplace, $chaine);
echo $chaine;
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 01h37   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
clement106 > dans le fond ça sert a quoi, à part pas grand chose ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/12/2011, 09h29   #9
Futur Membre du Club
 
Inscription : juillet 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 81
Points : 17
Points : 17
Citation:
<!DOCTYPE HTML><html lang="fr" xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <meta charset="utf-8" />
Chez moi ça me retourne rien (null). Bizard...

Merci Vorace pour ton code. Malheureusement pour le moment ta fonction me retourne juste: "toto o"


Code :
clement106 > dans le fond ça sert a quoi, à part pas grand chose ?
Celà permet d'augmenter légèrement le temps de chargement des pages côté client d'après ce que j'ai pu lire



---- EDITION ----

Houp, sorry je n'ai rien dit. Ma première fonction marche très bien. Il fallait juste penser à afficher le code source de la page pour voir le résultat car le code était évidement interprété...
clement106 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 14h26   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
Citation:
Envoyé par clement106 Voir le message
Celà permet d'augmenter légèrement le temps de chargement des pages côté client d'après ce que j'ai pu lire
donc à rien, la page est valide W3C au moins ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 26/12/2011, 17h27   #11
Futur Membre du Club
 
Inscription : juillet 2007
Messages : 81
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 81
Points : 17
Points : 17
Tu vas un peu vite là non?

Je pense que ça peut quand même avoir une petite influence. Du mois je vais tester quelques jours.

J'ai aussi crée un domaine static, à voir aussi...

Pour le W3C si je n'avais pas mes balises meta Facebook et un petit formulaire (label), mes pages seraient valident.
clement106 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2011, 19h20   #12
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 16 323
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 16 323
Points : 49 932
Points : 49 932
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Citation:
Envoyé par stealth35 Voir le message
donc à rien, la page est valide W3C au moins ?
C'est d'ailleurs pour ça que Google n'incite pas du tout à accélérer ses pages : http://code.google.com/speed/page-speed/. Ce n'est d'ailleurs même page pris en compte dans le référencement à la Google : http://googlewebmastercentral.blogsp...h-ranking.html.

Dans ce cas, c'est à peu près inutile, c'est plutôt pour des sites comme celui-ci, qui ont un gabarit de plusieurs kilooctets de vide. Petit extrait :

Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	<div id="gabarit">
	<div id="gabarit_tabmenu">
		<div>&nbsp;</div>
		<ul id="tabs">
 
									<li class="item first">
 
											<a href="http://www.developpez.com">
 
					   Accueil
 
													<span class="tooltip">
							Actualités IT Pro
						   </span>
											</a>
 
 
				</li>
 
 
					<li class="item">
 
											<a href="http://conception.developpez.com">
 
					   Conception
 
													<span class="tooltip">
							Cycle de vie du logiciel
						   </span>
											</a>
__________________
Le troisième défi Qt !

Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Qt : La FAQ : 200 QR
symfony : sfDoctrineGuard

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h04.


 
 
 
 
Partenaires

Hébergement Web