Le code source de la fonction PHP peut-il être récupéré par programme ?

Patricia Arquette
Libérer: 2024-10-19 07:33:30
original
447 Les gens l'ont consulté

Can PHP Function Source Code be Retrieved Programmatically?

Extraire le code source d'une fonction PHP par programme

Question :

Est-il possible de récupérer par programme le code source d'un PHP fonction étant donné son nom ?

Contexte :

Par exemple, considérons le code suivant :

<code class="php">function blah($a, $b) { return $a*$b; }
echo getFunctionCode("blah");</code>
Copier après la connexion

Est-il possible d'implémenter une telle fonction ?

Réponse :

Oui, cela est réalisable en utilisant la classe ReflectionFunction de PHP. Voici un extrait de code qui montre comment :

<code class="php">$func = new ReflectionFunction('myfunction');
$filename = $func->getFileName();
$start_line = $func->getStartLine() - 1; // subtract 1 to obtain the correct function block
$end_line = $func->getEndLine();
$length = $end_line - $start_line;

$source = file($filename);
$body = implode("", array_slice($source, $start_line, $length));
print_r($body);</code>
Copier après la connexion

Ce code récupère le code source de la fonction en analysant le fichier source PHP et en extrayant les lignes correspondant au corps de la fonction. La classe ReflectionFunction fournit des méthodes pratiques pour déterminer l'emplacement du fichier de la fonction, ainsi que les numéros de ligne de début et de fin.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal