Fonction dans un include ne fonctionne pas

Bonjour,

voici mon problème :

j'ai une page fonction.php qui contient ceci:


<?php
function eprcutaccent($chaine)
{
$chaine = str_replace("é", "&eacute;", $chaine);
return $chaine;
}
?>

Une autre, index.php qui contient ceci (En partie):
<?php

$titre =eprcutaccent( $_POST['titre']);

echo $titre;

?>

Si dans mon formulaire, j'entre la valeur "é" le code m'affiche "é", même dans la source.

Pour tester mon code, dans le fichier fonction en dessous de

function eprcutaccent($chaine)
{
j'ai placer la ligne

$chaine = "é";

la page renvois cette fois ci "&eacute;".
ce qui prouve que la fonction est bien appelé, ensuite, j'ai mis le code suivant dans la page index.php :

<?php

$titre = $_POST['titre'];
$titre = str_replace("é", "&eacute;", $titre);
echo $titre;

?>

Le code suivant affiche également "&eacute;" ce qui prouve également que le code de ma fonction fonctionne.

J'ai passé mon dimanche à essayé de comprendre pourquoi la fonction fonctionne, le code fonctionne, mais le code dans la fonction ne fonctionne pas!!!

Une idée pour que je puisse avoir l'âme en paix?

Merci



C cool de programmer quand ça marche!!

3 réponses

  1. Bonsoir,

    Pourquoi avez-vous AB-SO-LU-MENT besoin de convertir les caractères accentués en leurs entités HTML?

    Codez tous vos scripts en UTF8. Ainsi, vous utiliserez nativement TOUS les caractères accentués, mais également les alphabets étrangers: grec, arable, russe, etc...

    Explications:
    https://html5.immo-scope.com/article/general_applisFullUtf8

    A+
    1
    1. Bonsoir,
      merci de votre réponse,
      j'en ai besoin pour généré un code xml pour un lecteur audio, il ne fonctionne pas avec les accents.
      Oui, je sais qu'il y à d'autres solution, mais je veux juste comprendre pourquoi ma fonction ne fonctionne pas, quel est le problème.

      Avez-vous une idée?

      Ensuite, j'ai déjà essayé de tout codé en utf8 et iso8859, à chaques fois il y à des erreurs
      0
      1. Je pense que votre lecteur audio est buggé. Solution: convertissez les "é" en "e".....

        La fonction str_replace accepte les tableaux. Exemple:

        <?php
        $search = array("à","é"....etc...);
        $replace = array("a", "e"...etc....)
        
        $newStr = str_replace($search, $replace, $oldStr);


        A+
        0
    2. Merci beaucoup, je vais tester ça, je connaissais pas cette utilisation.

      Bonne soirée
      0