2010-10-13 5 views
2

Est-il possible d'appeler une fonction PHP trouvée dans un fichier sur un autre site avec un domaine différent? Par exemple, je sais que pour appeler une fonction PHP à partir d'un autre fichier du même domaine (disons la fonction aaa() trouvée dans aaa.php), il suffit de le faire (avec quelques hypothèses simplificatrices):Appeler des fonctions PHP de différents domaines

include_once('aaa.php'); 
aaa(); 

J'ai essayé de faire quelque chose de semblable, comme:

include_once('http://othersite/aaa.php'); 
aaa(); 

Je ne peux pas obtenir ce travail (la page semble charger fin, sans message d'erreur, mais la fonction n'exécute pas). J'ai essayé require(), ce qui me donne un écran vide. Je n'ai pas eu de succès avec fopen non plus.

Si c'est possible, comment puis-je le faire?

Répondre

0

Ce que vous faites actuellement, c'est que le serveur distant exécute le fichier PHP, puis vous lisez le contenu analysé - comme le ferait un navigateur. Donc, vous obtenez (probablement) HTML, pas de code PHP.

Si le code distant n'a pas besoin d'être gardé privé pour une raison quelconque (par exemple la sécurité), vous pouvez obtenir le serveur distant pour vous servir le code source PHP. La façon la plus simple de le faire est de renommer le fichier en aaa.txt, il ne sera donc pas transmis à l'interpréteur PHP.

0

Vous ne pouvez le faire que si l'autre serveur est configuré pour servir les fichiers PHP en tant que source, c'est-à-dire sans les exécuter.

6

Le include et require (et leurs variantes _once) prennent un chemin de système de fichiers local comme paramètre. Les domaines n'ont rien à voir avec ça.

Oui, vous pouvez également y mettre une URL (si vous avez activé les wrappers fopen), mais alors PHP va simplement télécharger le fichier et essayer de l'exécuter. En d'autres termes, pour que cela fonctionne, si vous avez entré http://othersite/aaa.php dans votre navigateur, il devrait montrer la source PHP, pas les résultats du traitement.

Lors du passage d'une URL à include \ require, PHP ne peut rien faire d'autre que votre navigateur. Il est à la merci du serveur Web au othersite. S'il ne renvoie pas de code PHP, PHP ne peut pas y accéder.

Questions connexes