Intereting Posts
Каков синтаксис сортировки коллекции Eloquent несколькими столбцами? Как конвертировать документы в PDF в стек Linux / PHP? Должен ли я хранить хэши для паролей? Как загрузить представление на основе состояния в контроллере (Codeigniter) Как защитить паролем загруженный PDF-файл в PHP Как перенаправить обратно в форму с помощью ввода – Laravel 5 есть ли способ получить общие значения между двумя массивами в php? Laravel: пользовательский корневой ключ Dingo / API Pagination Есть ли способ установить частное / защищенное статическое свойство с использованием классов отражения? Что все эти операторы SQL в Laravel? OAuth 1.0 Генерация подписи с PHP javascript автозаполнение текстовых входов на основе выпадающего выделения Изменение цвета фона страницы с помощью php Amazon SES Ошибка получения учетных данных с сервера метаданных профиля экземпляра. (Ошибка клиента: 404) Проверка подлинности PHP is_numeric или preg_match 0-9

Как я могу получить PHP-скрипт ** результаты **, включенные в другой скрипт PHP?

Я хотел бы включить результаты данного скрипта (скажем, a.php) в другой скрипт (скажем, b.php).

Хотя есть оператор PHP include и их другие аналоги (include_once, require и require_once), кажется, что все они включают содержимое файла, а не его результаты обработки, как я ожидал.

Итак, как я могу сначала обработать a.php, а затем включить его результаты (а не содержимое самого файла) в скрипт b.php?

С другой стороны, если у моего включенного файла (a.php) есть оператор return, весь файл должен быть обработан первым или его содержимое также включено в b.php как есть?

Заранее благодарю за ваши ответы.

a.php:

 <?php echo "world"; 

b.php:

 <?php ob_start(); include("a.php"); $a= ob_get_clean(); echo "Hello, $a!"; в <?php ob_start(); include("a.php"); $a= ob_get_clean(); echo "Hello, $a!"; 

возможно?

Похоже, вы хотите использовать оператора backtick, за которым следует eval . Что-то вроде этого:

 $code = `/path/to/myscript.php`; eval($code); 

Если myscript.php не является исполняемым, вам придется префикс его с помощью php, как в:

 $code = `php /path/to/myscript.php`; 

Обратите внимание, что вам нужно полностью доверять myscript.php, иначе это проблема безопасности.

Это, вероятно, не очень хороший дизайн, вы можете подумать о том, есть ли лучший способ сделать то, что вы хотите.

Если a.php доступен через Интернет, вы можете использовать file_get_contents с http:// (или https:// ). Это позволит получить доступ к вашему скрипту, как к обычной веб-странице, и ваш веб-сервер обрабатывает его через PHP и возвращает результаты.

a.php:

 <?php echo 2+2; 

b.php:

 <?php echo file_get_contents('http://example.com/a.php'); 

Вывод:

 4 

Вы также можете использовать буферизацию вывода, как указано выше в комментарии DaveRandom. Тем не менее, это, как правило, не примерный дизайн приложения. Предпочтительно иметь код, который будет возвращать нужные вам результаты, а не echo их. Так может быть что-то вроде этого:

a.php:

 <?php function calculateA() { return 2+2; } 

b.php:

 <?php include('a.php'); echo calculateA(); в <?php include('a.php'); echo calculateA(); 

Вывод:

 4 

Изменить: несколько альтернатив хорошо описаны на странице include в документации PHP .

Резюме:

Если файл php принадлежит вашему серверу:

 ob_start(); $result = eval(file_get_contents('/path/to/your/script.php')); ob_end_clean(); 

Если нет, но он доступен через HTTP:

 $result = file_get_contents('http://path.to/your/script.php');