2010-04-01 11 views
3

Je voudrais savoir comment créer une fonction php qui peut être installé en php comme le déjà construit dans des fonctions telles que:personnalisée création de fonctions php et installer

rename 
copy 

Le principal point que je voudrais accomplir est une fonction php simple qui peut être appelée à partir de n'importe quelle page php sur l'hôte entier sans avoir besoin d'avoir une fonction php au sein de la page php/nécessitant un include.

si simplement je voudrais créer une fonction qui fonctionne comme ceci:

location(); 

que sans une chaîne d'entrée donnée sera de sortie l'emplacement actuel du fichier par écho, etc

Répondre

2

Comme d'autres l'ont dit, il y a probablement une façon plus facile et plus efficace de faire la plupart des choses. Mais si vous voulez écrire une extension, essayez ces liens: section

http://docstore.mik.ua/orelly/webprog/php/ch14_01.htm

http://www.tuxradar.com/practicalphp/2/3/0

+0

merci beaucoup pour votre aide, cela m'a aidé à attribuer aussi et était exactement ce dont j'avais besoin par le passé, Ceci est pratiquement un point de mire sur la cible merci beaucoup, il a aidé ma compréhension énormément –

-2

Donc, vous voulez d'étendre le langage de base de PHP pour créer une fonction appelée location(), écrit en C, ce qui pourrait être fait en PHP par:

echo __FILE__; 

droit. Amuse-toi à faire ça.

+4

Sarcasme va dans les commentaires. –

+2

Ce n'est pas exactement ce que je voulais dire, le module Location() était un exemple de ce que j'avais l'intention d'accomplir Je réalise que echo __FILE__; va sortir l'emplacement du fichier complètement et merci. La question principale que je tentais de demander était comment je pourrais installer une fonction intégrée dans php? –

+0

Sarc est mon dialecte naturel. –

9

Eh bien, il y a quelques options ici. L'un d'entre eux consiste à étendre la langue en écrivant une extension. Vous devriez balayer avec le code source PHP, l'écrire en C et traiter le Zend Engine en interne. Vous ne seriez probablement pas capable de l'utiliser sur un hôte partagé et cela prendrait beaucoup de temps et ne valait probablement pas le coup.

Ce que je ferais est de mettre toutes vos fonctions dans un fichier PHP séparé, par exemple helper_functions.php. Maintenant, allez dans votre php.ini et ajoutez la directive: auto_prepend_file = helper_functions.php. Ce fichier doit être dans l'un des répertoires spécifiés dans votre include_path (c'est aussi une directive php.ini). Ce qui est fait est automatiquement mis include 'helper_functions.php'; sur chaque script. Chaque requête aura ces fonctions incluses, et vous pouvez les utiliser globalement.

Read more about auto_append_file.

+0

Merci pour votre grande réponse à ma question J'apprécie beaucoup cela, Juste pour vérifier ce que vous proposez: Au lieu de se faufiler dans le php zend et l'écriture en C# qui serait à la fois chronophage + peut-être pas compatible pour l'instillation de masse sur plusieurs machines que vous avez recommandé d'éditer le PHP.ini et en plaçant auto_prepend_file Cela inclura un fichier de fonctions php donné à chaque chargement de page, si une fonction n'est pas appelée, aucune réponse n'est donnée comme si Inclus le fichier dans le code source php. Ce chemin d'inclusion peut-être un répertoire donné correct? –

+0

Si vous écriviez une extension, il faudrait que C ne soit pas C# (ce ne serait pas trop mal). Vous avez raison, aucune réponse ne sera donnée si vous n'appelez pas ces fonctions tant que vous n'avez que des déclarations de fonction. C'est toujours un fichier php régulier, donc si vous aviez 'echo 'hello!';' En haut de votre script, vous verriez toujours 'echo''d chaque requête. Oui, 'include_path' peut être n'importe quel répertoire, en savoir plus à ce sujet ici: http://www.php.net/manual/en/ini.core.php#ini.include-path – ryeguy

+0

Donc, je pourrais éventuellement inclure un fichier php en dehors du www? répertoire et dans une zone utilisateur que le serveur web php + a la permission de parcourir aussi Merci beaucoup :) –