Suprimer un caractère, et non le remplacer par un espace.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Suprimer un caractère, et non le remplacer par un espace.

par Nico128 » 31 déc. 2005, 19:20

Effectivement ça marche maintenant :D

Merci beaucoup.

Et pour la doc, jai toujours un peu du mal a comprendre leur explication.

Merci encore

par Truc » 31 déc. 2005, 18:33

je n'avais pas donné plus d'infos sur mon post car j'estimais que l'exemple de la doc était très bien :?

Tiré de la doc:
// Génère : Bnjr l mnd
$voyelles = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
echo $consonnes = str_replace($voyelles, "", "Bonjour le monde");
donc pour ton cas:
$speciaux    = array(":",",",".",";","?","!","~","'","´","(",")","/","&","%","*","\\","\"","$","[","]","{","}","|")
$chsscarspec = str_replace($speciaux, "", $chssaccent);
Il faut placer les caratères dans un array.

par Nico128 » 31 déc. 2005, 16:33

Ok merci!

Et pour ce problème, d'ou ça vient ?

par Cyrano » 31 déc. 2005, 15:59

Non, la fonction reçoit un paramètre ici nommé "$titre" : son utilisation est la suivante :
$texte = "bla bla...";
/* On traite le texte en faisant appel à la fonciton en envoyant le paramètre attendu */
$retour = suppaccents($texte);
Comme tu peux voir, le nom de la variable envoyée en paramètre lors de l'appel est différent du nom du paramètre inscrit dans la fonction elle-même, mais c,est sans imoprtance, PHP va utiliser le contenu et non le contenant, les variables étant les contenants.

par Nico128 » 31 déc. 2005, 14:43

Merci d'avoir répoondu.

Mais c'est bizard, ça ne marche pas. Les accents sont bien remplacés par des caractères sans accent, mais les caractères spéciaux reste dans la chaine :?

Aufaite jai jamais créé une fonction (celle la je lai trouvé sur un site) mais jai une autre question :
function suppaccents($titre) 
Pour la variable $titre, il faut aussi que ma chaine aie comme variable $titre c'est sa ?

Merci d'avance

par Cyrano » 31 déc. 2005, 11:07

Proposition :
<?php
function suppaccents($titre)
{
    $accents     = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
    $ssaccents   = "abcdefghijklmnopqrstuvwxyzAAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
    $speciaux    = " :,.;?!~'´()/&%*\"$[]{}|";
    $chssaccent  = strtr($titre,$accents,$ssaccents);
    $chsscarspec = str_replace($speciaux, "", $chssaccent);
    return($chsscarspec);
}
?>

par Truc » 31 déc. 2005, 04:49

Suprimer un caractère, et non le remplacer par un espace.

par Nico128 » 31 déc. 2005, 04:21

Salut tout le monde...! J'ai une fonction qui remplace les caractère ÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõ en caractère sans accent :
function suppaccents($titre){
$accents = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ :,.;?!~'´()/&%*\"$[]{}|";
$ssaccents = "abcdefghijklmnopqrstuvwxyzAAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn-----------------------";
return(strtr($titre,$accents,$ssaccents));
} 
Mais pour les caractère spéciaux comme ceux là :,.;?!~'´()/&%*\"$[]{}| jaimerais pouvoir les suprimer de la chaine, et pas simplement les remplacé par un espace ou alors pas un tiret -

Si quelqun sait...

merci d'avance :D