Fonction php

Bonjour,
j'ai créé une fonction pour faire un petit regex...

regex.php :
<?php

function regex($texte){
    
    if(empty($texte)){echo "Ya rien";}
    
    else{           

    $texte = preg_replace('#\à#', '&agrave;', $texte);
    $texte = preg_replace('#\ç#', '&ccedil;', $texte);
    $texte = preg_replace('#\è#', '&egrave;', $texte);
    $texte = preg_replace('#\é#', '&eacute;', $texte);
    $texte = preg_replace('#\ê#', '&ecirc;', $texte);
    $texte = preg_replace('#\ô#', '&ocirc;', $texte);
    $texte = preg_replace('#\ù#', '&ugrave;', $texte);
    $texte = preg_replace('#\<#', '<', $texte);
    $texte = preg_replace('#\€#', '&euro;', $texte);
    $texte = preg_replace('#\©#', '&copy;', $texte);
    $texte = preg_replace('#\û#', '&ucirc;', $texte);
    
    echo "<br>traduction faites en HTML";}
      
}

?>


mon problème, c'est que une fois que je l'inclue dans une page, ça ne marche pas... au moment de l'echo, rien ne s'affiche... y a-t-il une erreur??

testregex.php :
<?php
//include('private/regex.php');
require_once('private/regex.php');

$desc = $_POST["desc"];
$desc = regex($desc);
$desc = htmlentities($desc);
echo $desc;
?>
Configuration: Windows
Firefox 3.0.5

9 réponses

  1. je suis sur de mon chemin... sinon il y aurait de toute facon une erreur affiché sinon...
    1. une autre question en passant...

      j'ai trouvé un autre moyen pour encoder les caractères spéciaux :

      $description = $test['description'];
      $trans = get_html_translation_table(HTML_ENTITIES);
      $description = htmlentities(strtr($description, $trans));
      


      et le tout enregistré dans une base de données...
      par contre, au moment de "echo $description", ça reste encodé en HTML à l'affichage... comment fait-on pour le remettre en caractère spéciaux??
      1. tu est sur du chemin de ton fichier require_once('private/regex.php'); ?? il manquerait pas desfois un petit ../
        1. merci mais en fait c'est pas au niveau de la fonction que ça bug, c'est quand la fonction est incorporé à un autre code php...

          <?php
          //include('private/regex.php');
          require_once('private/regex.php');
          
          $desc = $_POST["desc"];
          $desc = regex($desc);
          $desc = htmlentities($desc);
          echo $desc;
          ?>
          


          c'est comme si $desc se vidait une fois passé dans la fonction regex()... parce que plus tard, je souhaite l'incorporer dans un "input"... sauf que rien ne s'affiche au moment du "echo $desc;"...
          1. pas besoin de str_replace non plus ^^

            de plus, un tableau serrais mieux pour ta fonction je pense
            1. pour les fonctions j'ai pioché dans mes archives, et un tableau ?? pourquoi faire simple quand on peut faire compliqué.. lol!!
          2. j'ai meme retrouve un ancienne fonction que j'avais faites assez complète avec ça tu devrais t'en sortir

            function removeAccents($string)
            {
            			$string = str_replace("à", "a", $string);
            			$string = str_replace("á", "a", $string);
            			$string = str_replace("â", "a", $string);
            			$string = str_replace("ã", "a", $string);
            			$string = str_replace("ä", "a", $string);
            			$string = str_replace("å", "a", $string);
            			$string = str_replace("é", "e", $string);
            			$string = str_replace("è", "e", $string);
            			$string = str_replace("ê", "e", $string);
            			$string = str_replace("ë", "e", $string);
            			$string = str_replace("ì", "i", $string);
            			$string = str_replace("í", "i", $string);
            			$string = str_replace("î", "i", $string);
            			$string = str_replace("ï", "i", $string);
            			$string = str_replace("ò", "o", $string);
            			$string = str_replace("ó", "o", $string);
            			$string = str_replace("ô", "o", $string);
            			$string = str_replace("õ", "o", $string);
            			$string = str_replace("ö", "o", $string);
            			$string = str_replace("ø", "o", $string);
            			$string = str_replace("ù", "u", $string);
            			$string = str_replace("ú", "u", $string);
            			$string = str_replace("û", "u", $string);
            			$string = str_replace("ü", "u", $string);
            			$string = str_replace("ÿ", "y", $string);
            			$string = str_replace("ñ", "n", $string);
            			$string = str_replace("ç", "c", $string);
            			$s = array("/", "&", "?", ",", ".", ";", ":", "!", "§", "%", "*", "µ", "¤", "$", "£", "^", "¨", ")", "(", "~", "'", '"', "{", "}", "[", "]", "|", "`", "_", "@", "°", "+", "=");
            			$string = str_replace($s, "", $string);
            			$string = str_replace(" ", "-", $string);
            		
            			$string = preg_replace("([-]+)", "-", $string);
            			$string = preg_replace("([-]$)", "", $string);
            		
            return $string;
            }
            1. bsr voici plus simple

              function convert_accent($texte)
               {
               $texte=str_replace('é','&eacute;',$texte);
               $texte=str_replace('è','&egrave;',$texte);
               $texte=str_replace('à','&agrave;',$texte);
               $texte=str_replace('°','&deg;',$texte);
               return $texte;
              
               } 
              1. Contributeur
                pourquoi faire ca?

                $desc = $_POST["desc"];
                $desc = regex($desc);
                $desc = htmlentities($desc);

                pourquoi tu fais pas:

                $desc = htmlentities(regex($POST['desc']));

                ????
                1. clair !! en plus ça coute chère les expressions régulières !!