begin process at 2012 05 31 17:32:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

str_replace qui ne fonctionne pas, HELP ME PLEASE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

str_replace qui ne fonctionne pas, HELP ME PLEASE

vendredi 1 avril 2011 à 21:03:47 | str_replace qui ne fonctionne pas, HELP ME PLEASE

flasher_13





Bonjour à tous, je suis débutant et je bloque sur une petite bétise. Voici le problème:

J'ai une page index.php voici le code:

Code PHP :
include('smile.php');           //fichier dans lequel se trouve ma fonction qui remplace
$statut=$affiche_di["statut"]; //la c'est ma variable d'un statut (chaine de caractères) qu'un membre à posté
addsmile($statut);	       //là c'est ma fonction qui est censé remplacé les smiley texte par des images


//voici le contenue de smile.php

<?php
function addsmile($vartext)
{
			$vartext=str_replace(':)','<img src="images/smiley/smigeii (13).png" border="0">',$vartext);
			$vartext=str_replace(':/','<img src="images/smiley/smigeii (12).png" border="0">',$vartext);
			$vartext=str_replace(':(','<img src="images/smiley/smigeii (11).png" border="0">',$vartext);
			$vartext=str_replace(':p','<img src="images/smiley/smigeii (10).png" border="0">',$vartext);
			$vartext=str_replace(':P','<img src="images/smiley/smigeii (10).png" border="0">',$vartext);
			$vartext=str_replace(':D','<img src="images/smiley/smigeii (9).png" border="0">',$vartext);
			$vartext=str_replace(':d','<img src="images/smiley/smigeii (9).png" border="0">',$vartext);
			$vartext=str_replace(':o','<img src="images/smiley/smigeii (8).png" border="0">',$vartext);
			$vartext=str_replace(':O','<img src="images/smiley/smigeii (14).png" border="0">',$vartext);
			$vartext=str_replace(':s','<img src="images/smiley/smigeii (7).png" border="0">',$vartext);
			$vartext=str_replace(':S','<img src="images/smiley/smigeii (7).png" border="0">',$vartext);
			$vartext=str_replace(':dow:','<img src="images/smiley/smigeii (6).png" border="0">',$vartext);
			$vartext=str_replace(':|','<img src="images/smiley/smigeii (5).png" border="0">',$vartext);
			$vartext=str_replace('-.-','<img src="images/smiley/smigeii (4).png" border="0">',$vartext);
			$vartext=str_replace(':OO:','<img src="images/smiley/smigeii (3).png" border="0">',$vartext);
			$vartext=str_replace(':OO(:','<img src="images/smiley/smigeii (2).png" border="0">',$vartext);
			$vartext=str_replace(':OO):','<img src="images/smiley/smigeii (1).png" border="0">',$vartext);
			$vartext=str_replace(':Oo(:','<img src="images/smiley/smigeii (15).png" border="0">',$vartext);
			$vartext=str_replace(':Oo','<img src="images/smiley/smigeii (16).png" border="0">',$vartext);
			$vartext=str_replace(':@','<img src="images/smiley/smigeii (17).png" border="0">',$vartext);

return $vartext;
}					
?>


Mon problème viens du return qui ne se fait pas je pense ou alors je ne sais pas, faut-il faire avec un array?
Aidez moi s'il vous plait je galère sur cette petite chose ^^, merci d'avance
vendredi 1 avril 2011 à 21:27:54 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

phpAnonyme

faut-il faire avec un array?


A ton avis, ne serait-ce pas mieux ??

______________________________________________________________________
vendredi 1 avril 2011 à 21:34:17 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

flasher_13

ben peut être mais je vois pas comment faire, en plus quand je met le script avec le nom de ma variable ça marche parfaitement, les smiley s'affichent:

Code PHP :
			$vartext=$affiche_di["statut"];
                        $vartext=str_replace(':)','<img src="images/smiley/smigeii (13).png" border="0">',$vartext);
			$vartext=str_replace(':/','<img src="images/smiley/smigeii (12).png" border="0">',$vartext);
			$vartext=str_replace(':(','<img src="images/smiley/smigeii (11).png" border="0">',$vartext);
			$vartext=str_replace(':p','<img src="images/smiley/smigeii (10).png" border="0">',$vartext);
			$vartext=str_replace(':P','<img src="images/smiley/smigeii (10).png" border="0">',$vartext);
			$vartext=str_replace(':D','<img src="images/smiley/smigeii (9).png" border="0">',$vartext);
			$vartext=str_replace(':d','<img src="images/smiley/smigeii (9).png" border="0">',$vartext);
			$vartext=str_replace(':o','<img src="images/smiley/smigeii (8).png" border="0">',$vartext);
			$vartext=str_replace(':O','<img src="images/smiley/smigeii (14).png" border="0">',$vartext);
			$vartext=str_replace(':s','<img src="images/smiley/smigeii (7).png" border="0">',$vartext);
			$vartext=str_replace(':S','<img src="images/smiley/smigeii (7).png" border="0">',$vartext);
			$vartext=str_replace(':dow:','<img src="images/smiley/smigeii (6).png" border="0">',$vartext);
			$vartext=str_replace(':|','<img src="images/smiley/smigeii (5).png" border="0">',$vartext);
			$vartext=str_replace('-.-','<img src="images/smiley/smigeii (4).png" border="0">',$vartext);
			$vartext=str_replace(':OO:','<img src="images/smiley/smigeii (3).png" border="0">',$vartext);
			$vartext=str_replace(':OO(:','<img src="images/smiley/smigeii (2).png" border="0">',$vartext);
			$vartext=str_replace(':OO):','<img src="images/smiley/smigeii (1).png" border="0">',$vartext);
			$vartext=str_replace(':Oo(:','<img src="images/smiley/smigeii (15).png" border="0">',$vartext);
			$vartext=str_replace(':Oo','<img src="images/smiley/smigeii (16).png" border="0">',$vartext);
			$vartext=str_replace(':@','<img src="images/smiley/smigeii (17).png" border="0">',$vartext);

vendredi 1 avril 2011 à 21:45:36 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

phpAnonyme

Réponse acceptée !
Sous forme tableau, tu dégustera moins en ressource car tu ne fera pas un appel systhématique.

Après concernant ton souci, pour que $vartext soit accessible à l'extérieur de la fonction faut le signaler à ta fonction :

function addsmile($vartext)
{ global $vartext; .... }


Sinon tu fait un echo sur ta fonction directement :

echo addsmile($vartext);




______________________________________________________________________
vendredi 1 avril 2011 à 21:55:20 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

flasher_13

Merci beaucoup phpAnonyme avec une variable globale celà fonctionne parfaitement merci beaucoup et bonne soirée à vous!

Voici le code qui fonctionne pour ceux qui serait confrontés au problème:
Code PHP :
//extrait de index.php
include('smile.php');
$vartext=$mavariable_qui_contient_mon_texte;
addsmile($vartext);	
echo 'Texte avec des smiley en images: '.$vartext.' <br/> Merci à phpAnonyme';



//smile.php
<?php
function addsmile($vartext)
{
			global $vartext;
			$vartext=str_replace(':)','<img src="images/smiley/smigeii (13).png" border="0">',$vartext);
			$vartext=str_replace(':/','<img src="images/smiley/smigeii (12).png" border="0">',$vartext);
			$vartext=str_replace(':(','<img src="images/smiley/smigeii (11).png" border="0">',$vartext);
			$vartext=str_replace(':p','<img src="images/smiley/smigeii (10).png" border="0">',$vartext);
			$vartext=str_replace(':P','<img src="images/smiley/smigeii (10).png" border="0">',$vartext);
			$vartext=str_replace(':D','<img src="images/smiley/smigeii (9).png" border="0">',$vartext);
			$vartext=str_replace(':d','<img src="images/smiley/smigeii (9).png" border="0">',$vartext);
			$vartext=str_replace(':o','<img src="images/smiley/smigeii (8).png" border="0">',$vartext);
			$vartext=str_replace(':O','<img src="images/smiley/smigeii (14).png" border="0">',$vartext);
			$vartext=str_replace(':s','<img src="images/smiley/smigeii (7).png" border="0">',$vartext);
			$vartext=str_replace(':S','<img src="images/smiley/smigeii (7).png" border="0">',$vartext);
return $vartext;
}			
?>
samedi 2 avril 2011 à 00:14:32 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

genetApt151

Réponse acceptée !
Faut pas utiliser de variable globale, c'est ce qu'il y a de pire.

Voilà une solution juste :

Soit tu passes ta variable par référence comme ceci
function addsmile(&$vartext)

appel : addsmile($statut);

ou soit tu gardes ta fonction (1er post) mais fait un appel qui soit correct : $statut = addsmile($statut);

C'est un concept basic de programmation.
Pour plus d'infos :
[ Lien ]
[ Lien ]
samedi 2 avril 2011 à 01:23:15 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

phpAnonyme

+1

Je ne l'est pas précisé mais il est vrai que la deuxième solution que je lui est fournit est la plus conseillée, afin d'éviter tout effet de bord de la fonction


______________________________________________________________________
samedi 2 avril 2011 à 22:40:00 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

flasher_13

Merci pour ces précisions, je vais essayer de modifier le script comme ceci:
$statut = addsmile($statut);

Par contre je ne comprend pas en quoi c'est mal d'utiliser des variable globale? Niveau sécurité? Rapidité d'éxécution?



dimanche 3 avril 2011 à 00:43:10 | Re : str_replace qui ne fonctionne pas, HELP ME PLEASE

phpAnonyme

Ce n'est pas mal ! c'est déconseillée.
Pour savoir le pourquoi du comment : ici


______________________________________________________________________


Cette discussion est classée dans : php, replace, str, oo, vartext


Répondre à ce message

Sujets en rapport avec ce message

replace [ par kelm_by ] Salut tous les mondes, Je ne sais pas ou est l'erreur dans ce code mais ce que je veux c'est enlever .Php et remplacer _ par un espace merci d'avenc Texte propre pour une url ? [ par porciner ] Bonjour,J'ai fais une fonction qui permet de dénuer une chaine de ses caractères spéciaux et autres caractères nuisibles lorsque l'on veut ajouter cet Enlever sauts de lignes [ par cz1702 ] Bonjour à tous,Je souhaiterais enlever les sauts de ligne d'une variable :J'ai essayé de supprimer les "\n" avec str_replace sans succès :$desc=  str_ probleme de replace [ par thunderfear ] Bonjour,j'ai un probleme avec la fonction str_replace().J'aimerai remplacer "); );" par ); comme ceci: str_replace("); );", ");", $req2);mais ca  ne f str_replace [ par yoarf ] Bonjour,Je voudrais dans une chaine remplacer les cotes (') par des espaces:Cela ne fonctionne pas : $cat = str_replace('&quot;','&nbsp;',$cat);       str_replace("'", """, $maChaine); [ par alonsyl ] bonjour, j'utilise 1 chaine de caractere pour generer du code HTML via PHP. j'ai donc des trucs du genre :$maChaine = "TEST";echo $maChaine;le replace php sql [ par kelm_by ] salut,j'ai une table sql nomé table je veux remplacer ce que il ya dans le 3eme fiels nomé num par '1' mais ca marche pas commca.    $req="INSERT INTO accents et mysql [ par thelan ] Bonjour je tourne un serveur perso et je suis confronté a un probleme qui empeche le bon fonctionnement du site qu'il hebergeeffectivement il me rempl Simplification de nombreux str_replace [ par ImmortalPC ] Salut, je sais qu'il esiste une astuce pour éviter les nombreux str_replace avec array(). Quelqu'un la connaît il ou quelque chose pour simplifier le Problème avec str_replace [ par Arnauti ] Bonjour, je fais pour m'amuser un truc tout simple pour crypter (pas fini le truc) mais bon ... Voici mon code : $texte = 'cd' ; $original = array(


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales