Запуск нескольких файлов из одного PHP файла - PullRequest
1 голос
/ 29 мая 2020

Требуется запускать несколько PHP файлов из одного PHP файла без каких-либо тайм-аутов, после поиска переполнения стека единственное решение, похоже, использует EXE C, однако это не разрешено на моем хосте.

Если я запустил все. php из CLI, тогда он должен запустить 1. php, 2. php и 3. php.

Обычно это было бы прямо вперед, и я бы просто потребовал или включил их во все. php однако имена функций в 1. php, 2. php и 3. php совпадают, и я ищу решение, которое запускает файл и затем забывает о функциях, переменных или обо всем остальном в файле.

По сути, я хочу, чтобы 1. php, 2. php, 3. php запускались отдельно и All. php требуется только для запуска этих файлов.

Одним из возможных решений, на мой взгляд, было использование curl во всех. php, чтобы запускать их файлы, однако это приведет к ограничениям и тайм-аутам веб-сервера, с которыми я не собираюсь иметь дело.

Спасибо за помощь, ребята. Извините, если вопрос не очень ясен.

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Из комментария к вопросу: Не ищу, чтобы их запускали одновременно. Все файлы могут запускаться один за другим. Мне просто нужно избежать фатальной ошибки из-за одинаковых имен функций в нескольких файлах.

ТРИ ВАРИАНТА

Вариант 1, поместите общие функции в отдельный файл:

<?php

require shared_functions.php

require 1.php
require 2.php
require 3.php

?>

Вариант 2, заключите объявления функции в проверку, чтобы увидеть, была ли функция уже объявлена. Требуется размещение объявлений функций в оболочке перед вызывающим их кодом:

1. php

<?php

if (!function_exists('shared_function1')):
  function 1(){
      // yadda yadda
  }
endif;

// rest of 1.php
?>

2. php

<?php

if (!function_exists('shared_function1')):
  function 1(){
      // yadda yadda
}
endif;

// rest of 2.php
?>

Если единственная проблема - вы обнаруживаются бомбы в делькациях функций для функций, которые уже были объявлены другим сценарием, сделайте имена функций уникальными (объяснено в конце этой опции), затем запустите сценарии с этим:

Вариант 3 - все. * 1 замените общее имя функции на имя функции_2 ... et c.

примеры: ТЕКУЩИЕ СКРИПТЫ

1.php
<?php

$var_dry   = 'dry';
$var_wet   = 'wet';
$result=sharedfunctionname($var_dry, $var_wet);

function sharedfunctionname($var_1, $var_2){
   // mix two strings to make one with the letters from both intermingled
}

2.php
<?php

$var_dog   = 'dog';
$var_cat   = 'cat';
$result=sharedfunctionname($var_dog, $var_cat);

function sharedfunctionname($var_1, $var_2){
   // something completely different from mixing two strings....
}

ПОСЛЕ СОЗДАНИЯ УНИКАЛЬНЫХ ИМЕН ФУНКЦИЙ

1.php

<?php

$var_dry   = 'dry';
$var_wet   = 'wet';
$result=functionname_1($var_dry, $var_wet);

function functionname_1($var_1, $var_2){
   // mix two strings to make one with the letters from both intermingled
}

2.php
<?php

$var_dog   = 'dog';
$var_cat   = 'cat';
$result=functionname_2($var_dog, $var_cat);

function functionname_2($var_1, $var_2){
   // something completely different from mixing two strings....

}
0 голосов
/ 29 мая 2020

Вы можете использовать CURL для их последовательного запуска или CURL_MULTI, если вы хотите, чтобы они выполнялись параллельно. PHP Документация CURL

Очень упрощенный пример:

<?php

$ch = curl_init("http://localhost/1.php");
curl_exec($ch);
curl_close($ch);

$ch = curl_init("http://localhost/2.php");
curl_exec($ch);
curl_close($ch);

$ch = curl_init("http://localhost/3.php");
curl_exec($ch);
curl_close($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...