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 :

Trouver les lignes ne contenant pas une expression


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 10
    Points : 3
    Points
    3
    Par défaut Trouver les lignes ne contenant pas une expression
    Bonjour à tous,

    Je me décide enfin à demander de l'aide pour un problème que je n'arrive pas à résoudre (je ne sais même pas si c'est faisable).

    Voila mon problème :

    A la base nous avons simplement ajouté un doctype à notre site internet sauf que sous IE tous les endroits où il n'y a pas spécifié de "align" héritent du "align" d'avant ! Je me retrouve donc avec des textes centrés alors qu'ils devraient être par défaut à gauche. Je n'ai pas trouvé de remède à cela.

    J'aurais donc besoin de trouver dans plusieurs fichiers sources de mon site les balises <td> ne contenant pas de "align" afin que je puisse appliquer un "align=left". J'utilise notepad++ pour faire des replaces grâce aux expressions régulières (il y a peut etre un autre moyen ?)

    Voici un exemple "simple" :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <table>
       <tr>
          <td class=text align=center>
             XXXX
          </td>
          <td class=text>
            XXXX
          </td>
       </tr>
    </table>

    Il faudrait donc que je trouve la ligne <td class=text> et que je la remplace par <td class=text align=left>. J'ai essayé plusieurs choses mais je n'y arrive vraiment pas.

    Avez vous une solution à me proposer ? Merci d'avance à ceux qui pourront m'aider.

    ps : je ne sais pas si je suis dans le bon forum, j'ai pas trouvé mieux pour poser ma question.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    il suffit de mettre en CSS :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    table td { text-align:left; }
    ou viser plus précisément :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    table td.text { text-align:left; }
    N.B. align=center est obsolète.
    ET on met des " autour des attributs.
    On peut aussi gérer ça en CSS :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    table td.textcenter { text-align:center; }
    Il faut alors remplacer dans le code :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class=text align=center>
    par
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class="textcenter">
    et
    par
    ou simplement
    Dernière modification par rawsrc ; 14/08/2013 à 13h20. Motif: Merci de préciser le langage utilisé avec [code=html]

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Merci pour la réponse jreaux62.

    Oui je sais qu'on doit se mettre au CSS pour les align mais le problème c'est qu'on à un site de plus de 1000 fichiers .php et qu'il va nous falloir une éternité pour tout mettre comme il faut. On utilise partout des <table><tr><td> le site à 7/8 ans et à l'époque on utilisait encore cela

    Le problème c'est que dans mon code je peux avoir ça <td class=text valign=top align=center width=100%> dans ce cas le td avec class text ne doit pas se retrouver à gauche mais doit rester centré. En gros mon class text aujourd'hui ne fait que mettre la police et pas l'alignement. Comment je peux m'en tirer ? C'est pour ca que je voudrais faire un replace avec une expression regulière. A la rigueur trouver les class=text contenant "center" et remplacer par une class=textcenter ?

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    J'ai beau lire et relire les tutos sur les expressions régulières je bloque. En fait je voudrais lancer un premier replace qui me remplace mes "class=text align=center" par "class=textcenter" il me faudrait une expression de ce style "class=text X caractères align=center x caractère fermeture balise >"

    le code pour tester (bidon) :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <td class=text rowspan=50 valign=top><table bgcolor=green cellpadding=0 cellspacing=0 align=center width=200><tr><td>
    <td class=text rowspan=50 align=center><table bgcolor=green cellpadding=0 cellspacing=0  width=200><tr><td>
    je devrais trouver que la ligne 2 dans cet exemple. mais là avec mon essai il trouve la 1ere aussi...j'arrive pas à lui dire de rester dans la balise. Un peu d'aide ???

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    le plus simple à mon avis est que tu t'orientes vers la librairie dédiée à la manipulation du DOM en PHP : DOMDocument

    Tu vas mourir à triturer ton code HTML à coups de regex, crois-moi.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re :
    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (<td .*class=)text(.*)(align=center)([^>]*>)
    [^>] : tout sauf >
    on ne veut que les balises <td ....>, et pas <td ....>...<......>
    A remplacer par :
    @rawsrc
    C'est une regex pour Notepad++ !
    Citation Envoyé par venturi Voir le message
    ... J'utilise notepad++ pour faire des replaces grâce aux expressions régulières ...
    Dernière modification par Invité ; 14/08/2013 à 17h59.

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 10
    Points : 3
    Points
    3
    Par défaut
    Merci jreaux62 ! Ca m'a l'air pas mal du tout Je teste cela vendredi.

Discussions similaires

  1. [RegEx] [PCRE] Trouver les lignes ne contenant pas un mot
    Par NinjDS dans le forum Langage
    Réponses: 8
    Dernier message: 14/05/2012, 16h28
  2. Réponses: 2
    Dernier message: 27/04/2012, 17h44
  3. Réponses: 17
    Dernier message: 09/02/2010, 16h22
  4. Réponses: 5
    Dernier message: 06/11/2007, 13h58
  5. Trouver fichier ne contenant pas une chaine
    Par guitalca dans le forum Linux
    Réponses: 6
    Dernier message: 24/01/2006, 10h24

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