Aller au contenu

Ecraser une fonction interne


captain_torche

Sujets conseillés

Je cherche à redéfinir certaines fonctions de PHP, mais je ne trouve pas comment le faire.

J'ai bien vu un override_function, mais la version PHP n'est pas précisée (et PECL, c'est quoi ?)

Pour finir, si jamais il était possible de redéfinir une fonction, serait-il possible de l'appeler elle-même au sein de la nouvelle définition, ou risque-ton une boucle infinie ?

Ex :

override function print_r($tab) {
echo '<pre>';
print_r($tab);
echo '</pre>';
}

Lien vers le commentaire
Partager sur d’autres sites

Concernant PECL, c'est une librairie d'extension de PHP, pour le C.

Pour le reste, ne connaissant pas ces possibilités, je vais m'amuser à tester, si j'arrive à installer/activer cette librairie...

xpatval

Lien vers le commentaire
Partager sur d’autres sites

Installation avec WAMP : ajouter la ligne "extension=php_apd.dll" avec les autres extensions.

Exemple de code :

<?php
$arg = array(1,2,3,4,5);
print_r($arg );

rename_function( 'print_r', 'print_r_bak');

function override_print_r($tab)
{
echo '<pre>';
print_r_bak($tab); #sinon boucle infinie
echo '</pre>';
return;
}

override_function('print_r', '$tab', 'return override_print_r($tab);');
print_r($arg );
?>

Le probleme de ce code c'est qu'il n'est pas transportable, car necessite un environnement particulier (PHP en mode cgi + librairie apd)

:)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...