8796 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai développé un script de traitement de texte (il fait divers modification de façon à corriger des mises en forme dans un texte soumis par l'utilisateur). J'ai ajouté une fonctionnalité permettant d'ajouter une majuscule automatiquement à chaque début de paragraphe mais j'ai un problème avec les lignes de dialogue.

Le script remplace déjà automatiquement toute les tirets des lignes de dialogue pour les unifier, mais ignore la première ligne du texte soumis (à savoir le premier caractère de toute la chaine de texte).

Je souhaiterais vérifier si le premier caractère est un tiret et si c'est le cas le remplacer par le tiret unifié que j'ai choisie.

Le code qui m'a sembler le plus logique est celui là :



//edit : certain caractère s'affichent mal sur le forum, ça vient du fait que ce sont des caractères unicodes
if (preg_match("/^(–|‐|‒|–|—|―|-|_)/", $txt_sanitize_8)) {

$cherche = '/./' ;
$remplace = '– ' ;

$txt_sanitize_8 = preg_replace($cherche, $remplace, $txt_sanitize_8,1) ;

}



Mais ça ne marche pas...

J'ai un peu de mal avec les expression régulière... si quelqu'un avait la solution, merci d'avance.
Modifié par Goldysama (12 Jul 2010 - 23:25)
salut ...

je sais pas pourquoi tu as décidé de développé un logiciel de traitement de texte y'en a plein de tout fait qui fonctionne super bien et qui en plus sont adaptable à tout niveau...

donc va voir du côté de CS EDITOR tu verra c'est excellent Smiley lol

(non c pas des copains Smiley cligne c'est juste un très bon outil)
Salut,
a écrit :
Je souhaiterais vérifier si le premier caractère est un tiret et si c'est le cas le remplacer par le tiret unifié que j'ai choisie.
Tu n'as pas besoin de vérifier d'abord la présence d'un tiret (if (preg_match(...))). En effet, preg_replace() suffit à elle seule : si elle trouve, elle remplace, si elle trouve pas, elle remplace pas Smiley smile . Donc ton code peut se résumer à ça :
$texte_apres_traitement = preg_replace(
    '/^(–|‐|‒|–|—|―|-|_)/',
    '– ',
    $texte_a_traiter
);

Modifié par marcv (12 Jul 2010 - 15:32)
pchlj a écrit :
salut ...

je sais pas pourquoi tu as décidé de développé un logiciel de traitement de texte y'en a plein de tout fait qui fonctionne super bien et qui en plus sont adaptable à tout niveau...

donc va voir du côté de CS EDITOR tu verra c'est excellent Smiley lol

(non c pas des copains Smiley cligne c'est juste un très bon outil)



Disons que ça m'a servit à apprendre le php. Je connaissais pas ce langage et développer cette application m'a permis de l'apprendre, et puis j'ai quelques petites choses intéressante comme une détection poussé des paragraphe qui permet de traiter des textes dont la source contiendrait des retours chariots en plein milieu, tout en conservant les lignes de dialogues intactes.

Sinon j'ai cherché par curiosité CS EDITOR mais je ne trouve pas sur google, t'es sûr du nom ?

Pour ce qui est de mon problème, en fait le problème était déjà traité dans une autre partie du code, et j'avais oublié que je l'avais implémenté. Une ligne blanche est ajouté artificiellement au début du texte et c'est la raison pour laquelle mon code ne fonctionnait pas. J'ai pu corriger le problème, j'aurais dû aller moins vite et faire plus attention à ce que j'avais déjà fait.

Merci pour votre aide en tout cas.
oups en effet il s'agit de CK EDITOR et non cs...

Bonne idée de commencer comme ça pour le php Smiley smile t'as pas choisi le plus simple
Modifié par pchlj (14 Jul 2010 - 18:27)