Rechercher : dans
Par :

[PHP] Fonction qui renvoie le n° de ligne ?

Dernière réponse le 22 sep 2009 à 11:18:25 dcanl, le 27 aoû 2007 à 14:33:28 
 Signaler ce message aux modérateurs

Bonjour.

J'aimerais savoir s'il existe une fonction PHP qui renvoie le n° de ligne dans laquelle elle est appelée.

Par exemple si je suis sur la ligne 340 de mon script et que j'appelle cette fonction, j'aimerais qu'elle renvoie 340.

Un peu comme quand PHP renvoie des erreurs en indiquant le numéro de la ligne qui pose problème...

Merci. Quand la merde tombe du ciel, le malchanceux n'a pas de chapeau.

Configuration: Windows XP
Firefox 2.0.0.6

Meilleures réponses pour « [PHP] Fonction qui renvoie le n° de ligne ? » dans :
[PHP] Fonction mail() Voir La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
Les fonctions Ligne, Lignes, Colonne, Colonnes VoirVous avez un tableau et vous l'avez nommé NomTableau (par exemple) avec : INSERTION / NOM / DEFINIR ..... cocher les cases du tableau et nommer le tableau NomTableau (par exemple) Dans ce tableau, vous voulez connaitre, quelque soit son...
Quelques fonctions utiles VoirCette astuce vous montrera comment utiliser quelques fonctions très utiles en PHP: Retourne la longueur de la chaîne Utilisation Résultat Passe tous les caractères en minuscules. Utilisation Résultat Passe tous les caractères en...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...

1

Alain42, le 27 aoû 2007 à 14:44:01

Quel interêt à ça ?

Sinon ,une solution:

tu lis le fichier de ton script

$array_script=file("script.php);

ensuite tu parcours cet array (fonction array_search()) pour rechercher le nom de ta fonction
(attention ligne complète: function xxxxx())
le numero de la cle renvoyé sera ton numéro de ligne

Configuration: Windows XP
Firefox 2.0.0.6

Répondre à Alain42

2

dcanl, le 27 aoû 2007 à 15:10:19

Et bien en fait j'ai un script qui commence à être un peu long et j'ai pas mal de conditions if dedans qui, selon le résultat, changent la valeur de certaines variables (réussite ou échec de certaines étapes).

Je génère ensuite un rapport qui reprend les valeurs de ces variables.

Mais j'aimerais que, en plus de me dire qu'il y a eu un échec, il me soit indiqué la ligne à laquelle l'échec a été constaté (ligne à laquelle la variable a changé de valeur).

Faire quelque chose du genre

if (mail( ... ))
{
     $MaVariable="OK";
}
else
{
     $LigneCourante=Fonction_PHP_Qui_Renvoie_La_Ligne_Courante();
     $MaVariable = "ECHEC ligne $LigneCourante";
}

Comme ça je saurai quelle condition if a foiré (j'en ai plusieurs à contrôler de la même manière).

Parce que sinon c'est galère, ou alors il faudrait que je mette un numéro d'erreur unique à chaque fois pour pouvoir ensuite repérer le problème dans le code.

@+ Quand la merde tombe du ciel, le malchanceux n'a pas de chapeau.

Répondre à dcanl

3

dcanl, le 27 aoû 2007 à 15:39:29
  • +1

Re !

Finalement j'ai trouvé.

Le n° de ligne courante est stockée dans une constante PHP prédéfinie : __LINE__

D'ailleurs, si d'autres personnes sont intéressées, une constante __FILE__ contient le nom du fichier.

Merci. Quand la merde tombe du ciel, le malchanceux n'a pas de chapeau.

Répondre à dcanl

4

Coool!, le 25 avr 2008 à 14:12:53

Excellent! "Quel interêt à ça ?" : je ne pense pas qu'il faille être méprisant car justement, celà très pratique pour débugguer car le fichier log d'erreur n'est pas toujours suffisant pour se depatouiller de certaines situations! :)

Encore merci donc de ce pré post, or j'en ai besoin now! :)

C ya les kids lol.

Répondre à Coool!

5

 Eric-40, le 22 sep 2009 à 11:18:25

Bonjour,

je souhaiterais faire la même chose,

les variables __LINE__ et __FILE__ indiquent le n° de ligne et nom de fichier de l'endroit où sont écrites ces variables. Ce qui veut dire qu'il faut les passer en paramètre à la fonction ?

N'y a-t-il pas moyen de récupérer ces informations à l'intérieur de la fonction elle-même ? (la fonction doit bien savoir qui l'a appelé et où).

Merci pour votre aide
Cordialement

Répondre à Eric-40