Rechercher : dans
Par :

Php: remplacement d'entités par d'autres

Dernière réponse le 1 jui 2009 à 10:47:46 callahan75, le 30 jun 2009 à 21:15:55 
 Signaler ce message aux modérateurs

Bonsoir à tous,

j'aimerais remplacer dans des zones de textes d'un back-office le guillemets droit ( \&\#034) ouvrant et fermant (donc le même) les citations par des guillemets (ouvrant=\&\#8220; et fermant=\&\#8221;) ayant plus de style à mon goût une fois dans ma page.
Dans ma fonction ci-dessous traitant le texte (là en ex. un simple strophe en remplace un autre) , je peux remplacer n'importe quelle entité utilisée dans mon texte par une autre... mais comment faire simplement et sans équivoque la même chose pour remplacer mon guillemet ( \&\#034) entourant et étant le même forcément en début et fin de texte par cette fois-ci des guillemets n'étant pas identiques de chaque côté de ma chaine ?
Donc convertir (\&\#034 bla bla bla bla \&\#034) =>(\&\#8220; bla bla bla bla \&\#8221;) et quel que soit évidemment le texte contenu entre les guillemets.
______________________________________________________________________________________

function modifchars($contenu){

$traiter = array("", "\&\#039;","");
$remplace = array("","\&\#8217;","");
$contenu = str_replace($traiter,$remplace,$contenu);

return $contenu;
}

//traitement du texte avant ma requête sql
$texte= htmlspecialchars(($texte),ENT_QUOTES,"UTF-8");
$texte = modifchars($texte);

_______________________________________________________________________________________
Si quelqu'un a en tête quelque chose de simple et propre...c'est pas de refus

Par avance merci à tous.

Callahan75

Configuration: Windows XP
Firefox 3.0.11

Meilleures réponses pour « php: remplacement d'entités par d'autres » dans :
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...

1

poliquinp, le 30 jun 2009 à 21:56:31

Tu ne peux pas faire un Remplacer tous ?!

Sinon, moi j'aime bien mon code que j'ai réussie a déniché en travaillant en classe avec mon proffesseur. C'est un peut à la même manière que toi sauf qu'il marche un peut différement je croît.

Si celà peut t'aider, tu peut y ajouter les " " ou ' ' dans les tableaux a remplacer.

			
//Fonction qui remplace tous lse caractères spéciaux en les encodant

function remplacer_caracteres_accentues_et_script_douteux($a_remplacer)
{
	//Il trouve des caractères spéciaux
	$trouve = array("é", "à" ,"â" ,"ä" ,"ç" ,"è" ,"ê" ,"ë" ,"î" ,"ï" ,"ù" ,"ü" ,"û",  "É", "À" ,"Â" ,"Ä" ,"Ç" ,"È" ,"Ê" ,"Ë" ,"Î" ,"Ï" ,"Ù" ,"Ü" ,"Û");

	//Il remplace les cararctères trouvés
	$remplace = array("é" ,"à" ,"â" ,"ä" ,"ç" ,"è" ,"ê" ,"ë" ,"î" ,"ï" ,"ù" ,"ü" ,"û", "É" ,"À" ,"Â" ,"Ä" ,"Ç" ,"È" ,"Ê" ,"Ë" ,"Î" ,"Ï" ,"Ù" ,"Ü" ,"Û");
	
         return str_replace($trouve, $remplace, $a_remplacer);
}

Répondre à poliquinp

2

Feadin, le 30 jun 2009 à 22:09:28

En fait le noeud de ton problème c'est de différencier sans confusion possible le guillemet ouvrant et le guillemet fermant. Il faut pour cela trouver une condition qui soit toujours vérifiée dans un cas, et jamais dans l'autre.
Par exemple, si tous tes guillemets fermants sont précédés d'un point et suivis d'un espace (et jamais tes ouvrants), et/ou tous tes ouvrants sont suivis d'une majuscule et précédés d'un saut de ligne.

Tu peux soit utiliser des méthodes très simples (par exemple remplacer d'abord tous les guillemets du texte par un type ouvrant, puis tous les groupes "ouvrant+point" par "fermant+point"), ou passer par des expressions régulières qui permettent des recherches/remplacements complexes (voir doc de php)

Répondre à Feadin

3

 callahan75, le 1 jui 2009 à 10:47:46

Merci à vous deux pour vos réponses.

Je le voyais bien un peu comme ça... il va falloir que je passe par une expression régulière pour lui indiquer que lorsque qu'il y aura guillemet en début de chaine et en fin ( heureusement ça marche toujours par paire! ) il faudra convertir la chaine en distinguant le code de l'un et de l'autre mais surtout sans modifier le texte inséré entre !

Bonne journée

Répondre à callahan75