Supprimer une chaîne de caractères entre deux délimiteurs

Supprimer une chaîne de caractères comprise entre deux délimiteurs
Invité n'ayant pas de compte PHPfrance

19 mai 2010, 23:50

Bonjour,

Je souhaiterai reformater une feuille de style avec Php, avec une mise en page basique, c'est-à-dire en supprimant les sauts de ligne.

Jusque là, je débute, mais j'y arrive. :mrgreen:

En revanche, j'aimerai, au cours du formatage, supprimer les commentaires sous la forme /* Commentaire */.

Exemple...

Code : Tout sélectionner

/* Formulaires */ form, fieldset { margin: 0; padding: 0; border: none; }
deviendrait...

Code : Tout sélectionner

form, fieldset { margin: 0; padding: 0; border: none; }
(Pour la compréhension, je n'intègre pas à l'exemple la suppression de sauts de ligne.)

Naturellement, les commentaires commencent toujours pas /* et finissent par */.

J'ai essayé d'utilisé str_replace, strstr, strpos, substr, substr_replace, sans résultats...

Dois-je forcément recourir à une expression régulière ?

Merci pour vos lumières.

Cordialement,

Gaspard

ViPHP
ViPHP | 5462 Messages

20 mai 2010, 00:12

avec une expression relation et preg_replace :wink:

Castor Gaspard
Invité n'ayant pas de compte PHPfrance

20 mai 2010, 00:54

Bonsoir,

Bon, je cherche dans cette direction, même si pour l'heure, je n'ai pas rencontré le succès espéré après plusieurs essais. :cry:

Ah oui, pour la bonne tenue du forum, je tenais à présenter mes excuses : un copier-coller incongru m'a conduit à coller le sujet dans le nom d'utilisateur. Je suis confus. :oops:

Cordialement,

Gaspard

ViPHP
AB
ViPHP | 5818 Messages

20 mai 2010, 02:31

Ce petit tuto permet de faire ses premiers pas assez facilement avec les expressions régulières.

En le suivant tu pourrais trouver la réponse à ta question, qui pourrait donner quelque chose ressemblant à ça :
$css = "/* Formulaires */
form, fieldset {
  margin: 0;
  padding: 0;
  border: none;
};

/*Annulation d'autres formatages automatiques */
body, p, textarea, input, hr, ul, li, h1, h2, h3, h4, option, checkbox, select {
  margin: 0;
  padding: 0;
};";

echo nl2br(preg_replace('#(/\*.*\*/)#','',$css));

Castor Gaspard
Invité n'ayant pas de compte PHPfrance

20 mai 2010, 07:13

Bonjour,

Merci Stealth, merci Ab. Gr$ce à vous, mon problème est résolu. :)

Cordialement,

Gaspard

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 mai 2010, 15:36

Modération :
Puisque ta question est résolue, je l'indique en ajoutant la petite icône verte "Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

TTu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer