Как обратится к другому файлу в PHP
, чтобы только запустить скрипт, без обратной отправки результата?
Нужно без применения include
или require
.
Например в JQuery
:
$.ajax({
url: '/files/ajax_lg.php',
method: 'POST',
data: {"check_user": checkPin},
async: false
});
А как это реализовать в PHP
?
Пример кода старый, но не суть.
В скрипте /files/ajax_lg.php
запускайте другой скрипт, например, как в примере через exec
не забывая в конце команде добавить > /dev/null 2>&1 &
— это запустить скрипт в фоне и вызов /files/ajax_lg.php
буквально сразу вернет «результат» и ничего ждать не нужно.
На стороне клиента, в браузере
// Выполняете запрос без перезагрузки страницы
$.ajax({
url: '/files/run_task.php',
method: 'POST',
data: {"check_user": checkPin},
async: false
});
Так, например, может выглядить ваш скрипт в файле /files/run_task.php
Где /files/run_task.php
какой-то скрипт, который выполняется продолжительное время и который вы запускаете в фоне.
// /files/run_task.php
$script = APPLICATION_PATH . '/files/ajax_lg.php';
$command = 'php ' . $script;
$command .= ' > /dev/null 2>&1 &';
exec($command, $output, $status);
Ну даже в таком случае будет правильно, если вызов /files/ajax_lg.php
будет что-то возвращать. Потому что до вызова exec()
могут быть ошибки...
Суть в том, и вы это поняли, чтобы веб-сервер «сразу» отправил обратно ответ на запрос (/files/ajax_lg.php
), веб-серверу «приходится ждать» полностью выполнения скрипта (или пока не произойдет ошибка). Чтобы не дожиться выполнения какого-то скрипта — его можно запустить в фоне. Обрабатывать ошибки, если они возникают в таком скрипте — уже другая история...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вывожу данные из базы после загрузки страницыконечно, же title, description Не виден , ни поисковику ни парсеру вк (виджет для share)