Fonction php

powpowland Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   -  
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   -
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;
?>
A voir également:

9 réponses

graffx Messages postés 6506 Date d'inscription   Statut Contributeur Dernière intervention   1 975
 
pourquoi faire ca?

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


pourquoi tu fais pas:

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


????
1
mugen23 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   2
 
clair !! en plus ça coute chère les expressions régulières !!
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
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
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
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;

 } 
0
mugen23 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   2
 
pourquoi utiliser une expression régulière à ce niveau ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mugen23 Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   2
 
pas besoin de str_replace non plus ^^

de plus, un tableau serrais mieux pour ta fonction je pense
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
pour les fonctions j'ai pioché dans mes archives, et un tableau ?? pourquoi faire simple quand on peut faire compliqué.. lol!!
0
powpowland Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   20
 
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;"...
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
tu est sur du chemin de ton fichier require_once('private/regex.php'); ?? il manquerait pas desfois un petit ../
0
powpowland Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   20
 
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??
0
powpowland Messages postés 396 Date d'inscription   Statut Membre Dernière intervention   20
 
je suis sur de mon chemin... sinon il y aurait de toute facon une erreur affiché sinon...
0