Verificateur de regles de ponctuation.
14 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

k2pi - WRInaute occasionnel

- Messages: 313
- Inscription: 4 Fév 2007
Verificateur de regles de ponctuation.
Bonjour a tous,
Comme beaucoup de webmaster, je passe pas mal de temps a relire ce que les internautes écrivent sur mes sites. Pour les fautes d'orthographes mon petit plugin firefox fait ça très bien et en général ça va assez vite. Par contre je passe un temps fou a rectifier les fautes de ponctuation. Entre ceux qui mettent des espaces partout, ceux qui n'en mettent jamais... ajouter a ça les gens qui n'ont pas compris la différence entre majuscule et minuscule... bref il y a dix minutes n'y tenant plus je lance mon éditeur préféré, me dis que yen a marre jvais coder un truc qui rectifie ça tout seul et pis c'est tout !
Mais la je viens de relever la tête de mon clavier et une interrogation me parcours... et si ça existait déjà.. ? (ce qui ma fois est quand même grandement probable...)
Donc si vous connaissez un truc qui fait ça, vous pouvez me faire gagner quelques heures de code
Bon sinon, promis une fois que j'ai fini je fait tourner
Comme beaucoup de webmaster, je passe pas mal de temps a relire ce que les internautes écrivent sur mes sites. Pour les fautes d'orthographes mon petit plugin firefox fait ça très bien et en général ça va assez vite. Par contre je passe un temps fou a rectifier les fautes de ponctuation. Entre ceux qui mettent des espaces partout, ceux qui n'en mettent jamais... ajouter a ça les gens qui n'ont pas compris la différence entre majuscule et minuscule... bref il y a dix minutes n'y tenant plus je lance mon éditeur préféré, me dis que yen a marre jvais coder un truc qui rectifie ça tout seul et pis c'est tout !
Mais la je viens de relever la tête de mon clavier et une interrogation me parcours... et si ça existait déjà.. ? (ce qui ma fois est quand même grandement probable...)
Donc si vous connaissez un truc qui fait ça, vous pouvez me faire gagner quelques heures de code
Bon sinon, promis une fois que j'ai fini je fait tourner
-

Toma - WRInaute discret

- Messages: 208
- Inscription: 18 Jan 2006
Moi aussi je serais intéressé par ce genre de fonction... Jusqu'à présent je me limite à remplacer les espaces normaux par des espaces insécables devant les ponctuations double et à changer les « ' » en « ’ », donc un script un peu plus développé me serait très utile !
-

bruno212 - WRInaute occasionnel

- Messages: 497
- Inscription: 13 Fév 2005
Très bonne idée, mais je pense que c'est assez dure à développer.
Sinon, il y a la société Druide, développeur du logiciel Antidote qui est excellent, qui propose un service de correction des pages : http://www.webelixir.net/
à plus
Sinon, il y a la société Druide, développeur du logiciel Antidote qui est excellent, qui propose un service de correction des pages : http://www.webelixir.net/
à plus
-

Toma - WRInaute discret

- Messages: 208
- Inscription: 18 Jan 2006
J'ai trouvé ça : http://wordpress.org/extend/plugins/wp-typogrify/
C'est un peu trop pour ce que je cherche (ça utilise des astuces css pour corriger certains défaut HTML) mais ça peut aider à faire un script perso simplifié.
C'est un peu trop pour ce que je cherche (ça utilise des astuces css pour corriger certains défaut HTML) mais ça peut aider à faire un script perso simplifié.
-

k2pi - WRInaute occasionnel

- Messages: 313
- Inscription: 4 Fév 2007
C'est pas si dur que ca. A la limite ce qui peut être marrant c'est de faire un truc avec des règles externalisées pour pouvoir choisir son mode de correction (par exemple pour le : c'est un espace avant et apres en francais et juste un apres en anglais...)
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Pas compliqué de faire ca...
Le principe algorithmique que je propose est simple, on lit la chaine caractere par caractere et on la recontruit on fonction du dernier caractere trouvé, ca marche plutot bien.
le snipet contient:
- gestion des virgules
- gestion des points
- gestion des doubles points
qui veux aider a le perfectionner ??
++
Le principe algorithmique que je propose est simple, on lit la chaine caractere par caractere et on la recontruit on fonction du dernier caractere trouvé, ca marche plutot bien.
le snipet contient:
- gestion des virgules
- gestion des points
- gestion des doubles points
qui veux aider a le perfectionner ??
++
- Code: Tout sélectionner
<?php
$texte = "texte a modifier";
$i = 0;
while ( $i < strlen( $texte ) ) {
$caractere_a_analyser = $texte[$i];
if ( $lance_majuscule_au_prochain_tour == TRUE ) {
$caractere_a_analyser = ucfirst( $caractere_a_analyser );
$resultat .= $caractere_a_analyser;
$lance_majuscule_au_prochain_tour = FALSE;
}
elseif ( $caractere_a_analyser == '.' AND $texte[$i+1] != ' ') {
$resultat .= '. ';
$lance_majuscule_au_prochain_tour = TRUE;
}
elseif ( $caractere_a_analyser == ':' AND $texte[$i+1] != ' ') {
$resultat .= ': ';
$lance_majuscule_au_prochain_tour = TRUE;
}
elseif ( $caractere_a_analyser == ',' ) {
$resultat .= ', ';
}
else $resultat .= $caractere_a_analyser;
$i++;
}
echo $texte;
echo '<br />';
echo $resultat;
?>
- Acerouk
- WRInaute occasionnel

- Messages: 416
- Inscription: 16 Fév 2008
Re: Verificateur de regles de ponctuation.
k2pi a écrit:Donc si vous connaissez un truc qui fait ça, vous pouvez me faire gagner quelques heures de code
J'ai aussi cherché et j'ai rien trouvé de tout fait, je suis en train de le faire perso en récupérant des bouts de scripts par ci par là.
Je pense que les besoins peuvent être très différents pour chacun. Mon cahier des charges :
- Suppression des espaces et retours chariots inutiles,
- Signes de ponctuation avec les bons espaces avant et après (pas d'url dans le texte...),
- Majuscule en début de phrase et point à la fin mais pas possible de tout passer en minuscules au milieu car il peut y avoir des noms propres,
- Les mots entièrement en majuscules (noms propres) sont mis en 1 majuscule + minuscules (c'est pas un forum donc pas de mecs qui crient
Au début j'ai essayé de le faire avec des expressions régulières mais pour les majuscules j'ai pas trouvé, vous pensez que c'est possible ?
Par contre pour la ponctuation j'ai trouvé ça.
Edit pour faute de ponctuation ...
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Leonick a écrit:il y a un problème pour les points, car "..." deviendrait ". . . "
sans compter les uri saisis directement dans le texte où on aurait tout de séparé
Pour les ... il suffit de regarder le prochain caractere et le tour est joué
elseif ( $caractere_a_analyser == '.' AND $texte[$i+1] != '.'}
pour les url je propose un preg_replace() pour ajouter un marqueur en debut et fin des urls presentent dans le texte (#http://www.ndd.ext#) et au moment de recontruire la chaine on passe dessus.
$texte = preg_replace('#(http|https|ftp)://([[:alnum:]/\n+-=%&:_.~?]+[#[:alnum:]+]*)#','\#\\1://\\2\#',$texte);
le lien d'Acerouk est interressant, fully regex mais je ne vois pas comment on peut gerer les majuscules ( bien qu'avec une fonction callback..) mais c'est surtout les points (.) qui vont etre ingerable. Justement a cause des urls
A mon avis, il faut utiliser les preg pour marquer les exeptions qui sont nombreuses dans un texte:
- urls
- smileys
- mot complement en majuscule
- oublie des masjuscules (St, Mr, Miss...)
et reconstruire tranquille la chaine en gérant les differents marqueurs
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
tout depend du masque, celui capture tout les differents formats d'urls
- Code: Tout sélectionner
$masque = '#';
$masque .= '([http|ftp|https]+://';
$masque .= '[www\.]?';
$masque .= '[\.\-a-zA-Z0-9]*';
$masque .= '[a-zA-Z]{2,4}?';
$masque .= '[\?/\=\&\-_.a-zA-Z0-9]+?';
$masque .= '[\?/\=\&\-_.a-zA-Z0-9]+)';
$masque .= '#i';
-

Leonick - WRInaute accro

- Messages: 19599
- Inscription: 8 Aoû 2004
non, parce qu'un internaute quand il va donner un lien, il ne va pas taper http:// s'il est présent, c'est qu'il aura été sur ce lien et aura copié l'url dans la barre d'adresse pour le coller dans la page, mais quand le lien est mis de tête, il n'y a pas le protocole de mis
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
bien vu
$masque = '\([http|ftp|https]://[www\.]+)?([\.\-a-zA-Z0-9]*[a-zA-Z]{2,4}?[\?/\=\&\-_.a-zA-Z0-9]+?[\?/\=\&\-_.a-zA-Z0-9]+?)?\';
le principe reste simple, prendre le texte et y coller des marqueurs puis relire le texte en sortant tout les indices du tableau a ne pas analyser.
au final on aura une liste d'indices du texte -> $texte[$i]
genre $indice = array('4','5','6','15','16','18','19','20');
suffit de reconstruire le texte en ne tenant pas compte de ces cases.
$masque = '\([http|ftp|https]://[www\.]+)?([\.\-a-zA-Z0-9]*[a-zA-Z]{2,4}?[\?/\=\&\-_.a-zA-Z0-9]+?[\?/\=\&\-_.a-zA-Z0-9]+?)?\';
le principe reste simple, prendre le texte et y coller des marqueurs puis relire le texte en sortant tout les indices du tableau a ne pas analyser.
au final on aura une liste d'indices du texte -> $texte[$i]
genre $indice = array('4','5','6','15','16','18','19','20');
suffit de reconstruire le texte en ne tenant pas compte de ces cases.
- Acerouk
- WRInaute occasionnel

- Messages: 416
- Inscription: 16 Fév 2008
Voici mon code, sans prise en compte des smileys et des url et avec encore quelques bugs à corriger :
- Code: Tout sélectionner
function TypoPhrase($texte, $retourligne)
{
if ($retourligne == 0)
{
$texte = str_replace(array("\n","\r\n","\r"), array(" "," "," "), $texte); // supprime les retour à la ligne
}
else
{
$texte = nl2br($texte); // retour à la ligne html
}
$texte = stripslashes($texte); // supprime les antislash
$texte = preg_replace('/\s{2,}/', ' ', $texte); // réduit les espaces >= 2
$texte = str_replace('"','',$texte);
// Mettre une majuscule après . ! et ?
for($i = 0; $i < strlen($texte); $i++)
{
$lettre = substr($texte, $i, 1);
if($lettre == '.' || $lettre == '!' || $lettre == '?')
{
$capital = true;
}
elseif(!empty($lettre) && $capital == true)
{
$lettre = strtoupper($lettre); // Met une majuscule
$capital = false;
}
$new_texte .= $lettre;
}
$texte = $new_texte;
$texte = str_replace(' ,', ',', $texte); // suppression espace devant , et .
$texte = str_replace(' .', '.', $texte);
$patterns[0] = '/:([^ ])/'; // Deux-points non suivi d'un espace
$patterns[1] = '/([^ ]):/'; // Deux-points non précédé d'un espace
$patterns[2] = '/([^ ]);/'; // Point-virgule non précédé d'un espace
$patterns[3] = '/«([^ ])/'; // Guillemet ouvrant non suivi d'un espace
$patterns[4] = '/([^ ])»/'; // Guillemet fermant non précédé d'un espace
$patterns[5] = '/([^ ])!/'; // Point d'exclamation non précédé d'un espace
$patterns[6] = '/([^ ])\?/'; // Point d'interrogation non précédé d'un espace
$patterns[7] = '/,([^ ])/'; // Virgule non suivi d'un espace
$patterns[8] = '/\.([^ ])/'; // Point non suivi d'un espace
$replacements[0] = ': $1';
$replacements[1] = '$1 :';
$replacements[2] = '$1 ;';
$replacements[3] = '« $1';
$replacements[4] = '$1 »';
$replacements[5] = '$1 !';
$replacements[6] = '$1 ?';
$replacements[7] = ', $1';
$replacements[8] = '. $1';
$texte = preg_replace($patterns, $replacements, $texte);
$texte = trim($texte); // supprime les espaces et autre au début et à la fin de la chaine
$texte = ucfirst($texte);
if (substr($texte, -1, 1) != '.') // ajoute le point à la fin
{
$texte = $texte.'.';
}
return $texte;
}
14 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Vérificateur orthographique et grammatical de site Web
- [Résolu] Verificateur de NDD multi extention
- Recherche validateur XHTML et vérificateur de liens
- Metatags et ponctuation
- Balise title et ponctuation
- Script de formatage ponctuation
- Le vérificateur de liens me dit "Le lien est interdit
- Recherche avec ponctuation
- Ponctuation et apostrophe dans le ALT
- Ponctuation balises title et alt
- Le titre allongé des annonces premium Google Adwords - 14-02-2011
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
