Включить внешний класс php - PullRequest
       21

Включить внешний класс php

0 голосов
/ 03 сентября 2010

Как включить внешний класс в файл php?пример:

//Test.class.php

<?php 
class Test{
    function print($param){
        echo $param;
        }
    }
?>

//######################################################

//test.php
<?php
include('http://www.test.com/Test.class.php');

 $obj = new Test();

echo $obj->print("hola");
?>

Класс находится на другом сервере.Я включил allow_url_include и allow_url_fopen.Почему я не могу вызвать функцию print?

Ответы [ 3 ]

2 голосов
/ 03 сентября 2010

Удаленный файл должен выводить исходный код php, а не выполнять его.

Чтобы вывести код PHP вместо выполнения, вы можете просто удалить расширение .php из файла.

PS: Вы действительно, действительно, действительно уверены, что вам нужно дистанционное включение?Это БОЛЬШОЙ угроза безопасности!

0 голосов
/ 03 сентября 2010

Ознакомьтесь с документацией :

(...) Если целевой сервер интерпретирует целевой файл как код PHP, переменные могут быть переданы во включенный файл, используя строку запроса URL, как при использовании HTTP GET. Строго говоря, это не то же самое, что включение файла и наследование переменной области родительского файла; скрипт фактически выполняется на удаленном сервере, а затем результат включается в локальный скрипт.

Вероятно, сервер, с которого вы пытаетесь получить файл, выполняет PHP-файл, и включается только результат (который является пустым). Вам придется настроить сервер таким образом, чтобы он выводил код PHP. Но это не очень хорошая идея, если это разумный код.

0 голосов
/ 03 сентября 2010

То, что вы включаете с другого сервера, - это не код за PHP, а вывод с него (если вы посещаете эту страницу в браузере, вы не видите код PHP, если вы просматриваете источник правильно?)

Вам необходимо либо перенастроить другой сервер, чтобы не выполнять код, но отображать его (не очень хорошая идея, если он каким-либо образом используется совместно или ему нужно выполнить собственный код), или переименовать другой файл во что-то, что не первый интерпретированный (попробуйте otherfile.php.txt)

...