Appel de fonction dynamique

Petit nouveau ! | 2 Messages

02 oct. 2012, 09:24

Bonjour,
je suis en train de faire un site internet ou je souhaite intégrer une fonction qui supprimer les espaces en trop dans une chaine donc les infos viennent d'une base de données.
j'ai donc créé un fichier que j'ai appelé mesfonctions.php que j'appel par un include dans mes pages.
voici le contenu du fichier :
		
<?php
		function supspaceintro() {
		$supspaceintro = stripslashes($result['intro']);
		$supspaceintro = preg_replace('`( | |'.utf8_decode('Â').'|&nbsp;)+`i', ' ', $supspaceintro);
		return echo $supspaceintro;
		}
?>
et voici une page ou j'appel ma fonction :
	
<?PHP 
include('mesfonctions.php');
$requete = mysql_query("SELECT * FROM mesnews ORDER BY id ");
while( $result = mysql_fetch_array( $requete ) )
{	
	supspaceintro();
}
?>
le problème c'est que j'ai un message d'erreur sur la focntion et du coup je n'affiche pas mon texte :
Fatal error: Call to undefined function supspaceintro() in /....../htdocs/index.php on line 127

Mammouth du PHP | 702 Messages

02 oct. 2012, 09:30

bien le message est clair, il te dit que la fonction est indéfinie. A toi de voir si le lien vers la fonction est correct.

ViPHP
ViPHP | 2577 Messages

02 oct. 2012, 09:39

Tu peux ajouter error_reporting(E_ALL); en début de script pour voir éventuellement des messages d'erreurs supplémentaires. Parce que ne voie pas de problème dans ton code qui pourrait provoquer cette erreur.

Regarde dans le source de la page html s'il n'y a pas un message caché.

Autrement $result n'est pas défini dans la fonction (problème de portée des variables) et le return dans la fonction n'a pas d'intéret.
Le mieux serait de faire un appel à la fonction avec un paramètre et de retourner le résultat pour l'afficher.

Petit nouveau ! | 2 Messages

02 oct. 2012, 09:49

j'avais un soucis de lien mais mon problème c'est pas résolut car maintenant j'ai un message d'erreur suivant :
Parse error: syntax error, unexpected T_ECHO in /...../htdocs/mesfonctions.php on line 6
Le mieux serait de faire un appel à la fonction avec un paramètre et de retourner le résultat pour l'afficher.
Comment on fait sa ?

ViPHP
ViPHP | 2577 Messages

02 oct. 2012, 10:24

<?php
                function supspaceintro($texte) {
                $supspaceintro = stripslashes($texte);
                $supspaceintro = preg_replace('`( | |'.utf8_decode('Â').'|&nbsp;)+`i', ' ', $supspaceintro);
                return  $supspaceintro;
                }
?>
et ensuite echo supspaceintro($result['intro']);