remplacer un caratère dans une variable selon son code ASCII

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 : remplacer un caratère dans une variable selon son code ASCII

par funzyrip » 14 févr. 2006, 14:47

merci zigz4g mais je ne peux pas avec strtr parceque je ne peux pas faire les caractères à changer. c'est du style é , ou â è

mais ceci a l'air de marcher
$len = strlen($rep); 
for($a=0; $a<$len; $a++){ 
$p = ord($rep[$a]);
echo "<br>$p";
if ($p == 195) { 
$rep = substr_replace($rep,' ',$a,-($len-$a));
} elseif ($p == 169) { 
$rep = substr_replace($rep,'é',$a,-($len-$a));
} elseif ($p == 168) { 
$rep = substr_replace($rep,'è',$a,-($len-$a));
} elseif ($p == 162) { 
$rep = substr_replace($rep,'â',$a,-($len-$a));
}
}
echo "<br>$rep";
le seul problème vient du fait qu'il y a un espace vide apres le 1er if, il faut que je trouve une solution pour virer un espace au milieu de ma chaine $rep

par zigz4g » 14 févr. 2006, 12:41

Et avec cette fonction ???
$mavar = strtr($mavar,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');

par funzyrip » 14 févr. 2006, 12:17

merci pour ta réponse! c'est vrai que == ca marche mieux!

sinon je n'utilise pas str_replace parceque je ne peux pas faire les caractères à remplacer sur mon clavier...
a moins de pouvoir faire

str_replace = ('Ã?','è',$rep)
ou le ? représente quelque chose de variable, en effet dans ma variable $rep, j'ai souvent des Ãquelquechose, et je voudrais remplacer ces 2 caractères par autre chose??

merci de pour votre aide

par zigz4g » 14 févr. 2006, 11:31

salut,

Il est peut etre plus utile de faire des if avec l'operateur d'egalite.
$rep = dfkgdkgbvdkj@feriguhj;
$len = strlen($rep);
for($a = 0; $a < $len; $a++){
  $p = ord($rep[$a]);
  if ($p == 195) {
      $rep = substr_replace($rep, '', $a, $len - $a);
  } else if ($p == 169) {
      $rep = substr_replace($rep, 'é', $a, $a + 1);
  } else if ($p == 169) {
      $rep = substr_replace($rep, 'è', $a, $a + 1);
  } else if ($p == 162) {
      $rep = substr_replace($rep, 'ç', $a, $a + 1);
  } else {
      $rep = $rep;
  }
}
echo "<br>$rep"; 
Pourquoi ne pas utiliser str_replace ?

remplacer un caratère dans une variable selon son code ASCII

par funzyrip » 14 févr. 2006, 10:37

Bonjour à tous,
je cherche a tester les caractères d'une variable selon leur code ASCII et remplacer si besoin un ou des caractères de cette variable.
voila le topo:
$rep=dfkgdkgbvdkj@feriguhj;
$len = strlen($rep);
for($a=0; $a<$len; $a++){
  $p = ord($rep[$a]);
  if ($p=195) {
      $rep = substr_replace($rep,'',$a,$len-$a);
  } elseif ($p=169) {
      $rep = substr_replace($rep,'é',$a,$a+1);
  } elseif ($p=169) {
      $rep = substr_replace($rep,'è',$a,$a+1);
  } elseif ($p=162) {
      $rep = substr_replace($rep,'ç',$a,$a+1);
  } else {
      $rep=$rep;
  }
}
echo "<br>$rep"; 
bien sur ce que je viens d'afficher ne fonctionne pas... mais je vois pas comment faire pour changer ma variable $rep si un des caractères a telle valeur de code ASCII.

Auriez vous une idée? merci de vos réponses je continu de chercher