IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Migration eregi_replace ->preg_replace [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = eregi_replace("[ ]+", " ", $chaine);
    Est-ce que quelqu'un pourrait me donner l'équivalence?

    Merci d'avance!

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $str = 'foo   o';
    $str = preg_replace('/^ /', ' ', $str);
    echo $str;
    Les deux ne marchent pas évidement...

  4. #4
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    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 : 573
    Points : 915
    Points
    915
    Par défaut
    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...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    je t'assure que non...

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    ça donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE HTML><html lang="fr" xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <meta charset="utf-8" />

  7. #7
    Membre éprouvé Avatar de vorace
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2010
    Messages
    573
    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 : 573
    Points : 915
    Points
    915
    Par défaut
    tiens ça fait ce que tu veux (enfin je penses...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    clement106 > dans le fond ça sert a quoi, à part pas grand chose ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    <!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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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é...

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    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 ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    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.

  12. #12
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 683
    Points : 188 857
    Points
    188 857
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer foncton eregi_replace par preg_replace
    Par Amouna85 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 10/10/2011, 15h40
  2. [MySQL -> PostGreSQL] Migration
    Par Nepomiachty Olivier dans le forum Administration
    Réponses: 9
    Dernier message: 23/04/2010, 16h33
  3. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 25/04/2005, 10h39
  4. [Migratation] Application portable, indépendant du SGDB
    Par benouille dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 28/08/2002, 13h51
  5. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    Réponses: 1
    Dernier message: 03/04/2002, 22h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo