Я использую команду php exec для выполнения другого файла.
Я использую следующее: exec ('php email.php');
но я хотел бы передать переменную с именем $ body в файл "email.php" через команду exec. Как передать переменную через команду exec?
Пропустите аргумент:
exec('php email.php "' . addslashes($body) . '"');
Получите его в email.php :
$body = stripslashes($argv[1]);
Использование:
exec ('php email.php firstparameter secondparameter thirdparameter');
Вы также можете обратиться к этому: Руководство по командной строке
Вы можете передать его как параметр для email.php
exec('php email.php "'.addslashes($body).'"');
И email.php
получите его с помощью
$body = stripslashes($argv[1]);
Но если $ body содержит длинный текст с причудливыми символами, лучше сохранить его во временный файл со случайным именем.
<?php $temp_file = uniqid().'.txt'; file_put_contents($temp_file, $body); exec("php email.php $temp_file");
Затем в email.php
получите $body
из содержимого $temp_file
.
2 способа передать параметры в php-скрипт из команды php exec:
<?php $fileName = '/var/www/ztest/helloworld.php 12'; $options = 'target=13'; exec ("/usr/bin/php -f {$fileName} {$options} > /var/www/ztest/log01.txt 2>&1 &"); echo "ended the calling script"; ?>
см. полный ответ (с помощью сценария и результатов)