Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 28/09/2011, 09h01   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 52
Points : 11
Points : 11
Par défaut Fonction preg_replace() - compréhension syntaxe

Salut à tous,

Après des heures de recherche, la fonction preg_replace() reste pour moi des plus obscures...

Je veux tout simplement remplacer à la volée, dans une chaîne de caractères, toutes les balises
Code :
<b> par <span style="font-weight:bold;">
et les balises </b> par </span>

J'aimerais aussi, quand la chaîne comporte 2 <br /> à la suite, ne mettre qu'1 <br /> à la place.

Merci de m'aider à écrire ce bout de code, mais aussi à m'aider à comprendre comment fonctionne cette fichue fonction (j'ai remarqué, dans bien des exemples, qu'il faut ajouter des caractères "bizarres" du genre / @ * @i etc... dans la chaîne recherchée, mais à quoi ça sert, ça, bouh, rien compris

Merci beaucoup @+
Marmotton76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 09h50   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
pour parser du HTML c'est DOMDocument,
sinon quel est l’intérêt de la chose ? d’où sort la source ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 10h11   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 52
Points : 11
Points : 11
Bonjour stealth35,

La source provient du contenu d'un textarea stocké dans ma base de données. Ce textarea est associé à un éditeur html wysiwyg qui ne produit pas forcément du code super valide, et j'aimerais "nettoyer" un peu ce code avant de l'afficher dans ma page

Citation:
Envoyé par stealth35 Voir le message
pour parser du HTML c'est DOMDocument,
sinon quel est l’intérêt de la chose ? d’où sort la source ?
Marmotton76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 11h02   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
change plutôt d'éditeur, c'est le vrai problème de base
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 09h20   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 52
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 52
Points : 11
Points : 11
Le pb n'est pas là, ça va plus loin qu'un simple bout de code html non valide XHTML (d'ailleurs CKEditor le fait très bien).
J'aimerais recentrer le sujet qui à l'origine portait sur la compréhension de la fonction php preg_replace(), et non pas sur la validité d'un code ou un débat sur les éditeurs wysiwyg ! Je vous explique qd même rapidement pourquoi je veux modifier à la volée des fragments de code d'un contenu provenant d'un champ de saisie textarea et stocké dans une BDD :

En fait, j'utilise cet éditeur pour peupler des zones de contenus en "saisie libre" dans le site. Et par exemple, pour les besoins du site, l'utilisateur peut vouloir insérer un lien vers un autre site avec l'option target=_blank.

Or, tout le contenu administrable du site est également utilisé pour alimenter le site version "mobiles/smartphones", et j'aimerais rendre ce site le plus possible compatible avec ces systèmes. Mais le target=_blank est rédhibitoire car il signifie ouverture d'une autre fenêtre, ce qui n'est pas possible avec la plupart des mobiles, sauf peut être les navigateurs des smartphones dernière génération, mais qui sont loin de représenter la majorité des internautes mobiles.
Bref, c'est ce genre de bouts de code que j'aimerais supprimer à la volée lors de l'affichage de la version Mobiles des contenus, d'où mon appel à l'aide sur la fonction preg_replace().

Merci pour votre aide

Citation:
Envoyé par stealth35 Voir le message
change plutôt d'éditeur, c'est le vrai problème de base
Marmotton76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2011, 09h39   #6
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Si c'est juste pour remplacer des chaînes de caractères, utilise plutôt str_replace.

Mais les conseils de stealth35 sont ce qu'il y a de mieux
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h05.


 
 
 
 
Partenaires

Hébergement Web