Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
 Аватар для Stranger_
2 / 2 / 0
Регистрация: 04.04.2013
Сообщений: 27

Запуск одного скрипта из другого

07.07.2015, 11:57. Показов 3542. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Понимаю, что из названия темы мало, что понятно. Постараюсь объяснить на примере. Ситуация такая, пишется обработчик запроса с какого-то внешнего устройства (магазинная касса). Обработчик - скрипт на чистом PHP, без использования фрейморков. Он выполняет минимально необходимые действия по обработке запроса. И после этого должен вызвать другой скрипт, который лежит на этом же сервере, просто в другой директории. Этот второй скрипт работает под управлением фреймворка. Смысл в этом такой, что при ошибках в фреймворке API для касс продолжит работать, просто с чуть подрезанным функционалом. Не нужно меня спрашивать, зачем так делается и почему. Условимся, что это требование заказчика.

Так вот, я хотел поинтересоваться, как лучше всего организовать вызов этого второго скрипта? Пока мы остановились на варианте с cURL. Но что-то у меня на душе неспокойно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.07.2015, 11:57
Ответы с готовыми решениями:

Запуск из одного PHP скрипта другого, не дожидаясь его завершения
Добрый день. Имеется php скрипт registratot.php и calculate.php. Как мне вызывать выполнение calculate.php в registrator.php. При этом...

Запуск одного скрипта из другого
Какими кодами активируются скрипты в VBS? Есть скрипты, нужно чтобы эти файлы запускались другим скриптом. Не аутохоткеем же их кликать....

Запуск одного скрипта из другого
Всем привет! Возникла интересная проблема. Мой скрипт содержит цикл, в котором должен вызываться другой скрипт. при этом вызывающий...

30
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
08.07.2015, 18:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от cheshirskydimk Посмотреть сообщение
Можно, конечно, велосипедить в функции, заданной register_shutdown_function
причем здесь эта функция? Фатальные ошибки, включая синтаксические ошибки программиста, ловят той функцией имя которой указано аргументом в ob_start, которая в свою очередь вызывается в начале критического блока программы.. Если вся программа -сплошной критический блок ее вызывают в самом начале.

Не по теме:

Использовать скрипты, которые могут вызывать фатальные ошибки, это как-то очень себя не уважать...

0
14 / 14 / 13
Регистрация: 03.07.2015
Сообщений: 130
08.07.2015, 23:45
причем здесь эта функция?
При том, что работа с ней описывается в ссылке, предоставленной ТС.
Фатальные ошибки, включая синтаксические ошибки программиста, ловят той функцией имя которой указано аргументом в ob_start
Ээээ, чего? Это включение буферизации, а аргументом принимается функция, которая обрабатывает буфер перед выводом и ей никто не ловит ошибки.
0
 Аватар для Stranger_
2 / 2 / 0
Регистрация: 04.04.2013
Сообщений: 27
09.07.2015, 06:35  [ТС]
Цитата Сообщение от cheshirskydimk Посмотреть сообщение
Почему надо предусматривать то, что он может выдать ошибку?
Цитата Сообщение от ads Посмотреть сообщение
И наверно не стоит использовать недоделки вызывающие фатальные ошибки
В данном случае "недоделками" являются люди, которые после нас будут копаться в созданной системе. По договору мы только строим архитектуру, тестируем её и отдаём на растерзание заказчику. А он с Битриксом не знаком. Поэтому и боится, что где-нибудь что-нибудь не так сделает, и весь фреймворк рухнет. К слову сказать, так сделать в общем-то можно, если знать, где ковыряться.

А так бы у меня и мысли не возникло городить такие извращения.

Добавлено через 8 минут
Цитата Сообщение от ads Посмотреть сообщение
ловят той функцией имя которой указано аргументом в ob_start
В принципе, тоже вариант, но не в этом случае. Bitrix уже пользуется буферизацией вывода, а оборачивать один буфер другим - я вообще не думаю, что такой фокус пройдёт.
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
09.07.2015, 08:36
Цитата Сообщение от cheshirskydimk Посмотреть сообщение
ей никто не ловит ошибки
если не знаете, то это не означает "никто". Именно в ней и остается последний шанс обработать фатальные ошибки с вменяемым выводом пользователю что что-то пошло не так.
Цитата Сообщение от Stranger_ Посмотреть сообщение
а оборачивать один буфер другим - я вообще не думаю, что такой фокус пройдёт.
не пройдет. Перефразировав мануаль: если обработчиков содержимого буфера более одного - результат будет непредсказуем. Уж если не хотите разбираться с кодом подключаемого скрипта на предмет ошибок - остается curl. кстати file_get_contents может оказаться достаточно.
0
 Аватар для Stranger_
2 / 2 / 0
Регистрация: 04.04.2013
Сообщений: 27
09.07.2015, 10:33  [ТС]
Цитата Сообщение от ads Посмотреть сообщение
file_get_contents может оказаться достаточно
То есть, file_get_contents проще и требует меньше ресурсов, чем curl?
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
09.07.2015, 10:56
Цитата Сообщение от Stranger_ Посмотреть сообщение
file_get_contents проще и требует меньше ресурсов, чем curl?
ну да, не требуется подключать расширение curl. Только нужно иметь ввиду, что обращаться к скрипту требуется по протоколу http - тогда получите вывод скрипта. Если обращаться просто указав путь - получите содержимое файла, его код.. сервер-то один..
0
 Аватар для Stranger_
2 / 2 / 0
Регистрация: 04.04.2013
Сообщений: 27
09.07.2015, 11:01  [ТС]
Цитата Сообщение от ads Посмотреть сообщение
обращаться к скрипту требуется по протоколу http
Ну, это-то понятно. Ладно, спасибо, будем думать.
0
14 / 14 / 13
Регистрация: 03.07.2015
Сообщений: 130
09.07.2015, 11:23
если не знаете, то это не означает "никто". Именно в ней и остается последний шанс обработать фатальные ошибки с вменяемым выводом пользователю что что-то пошло не так.
Хорошо, поправлю себя: никто из нормальных программистов.
На счет "последнего шанса" рекомендую проследовать по ссылке, указанной ранее ТС, и расширить кругозор.
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
09.07.2015, 11:31
Если стоит задача отловить все ошибки? Как "нормальные" программисты "расширенным кругозором" обрабатывают синтаксические ошибки? Зарегистрированный обработчик вызван не будет..

Не по теме:

А эту статью я читал лет пять назад. Это про "кругозор"

0
14 / 14 / 13
Регистрация: 03.07.2015
Сообщений: 130
09.07.2015, 13:55
Зарегистрированный обработчик вызван не будет..
ob_start также не сработает
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
09.07.2015, 14:24
Цитата Сообщение от cheshirskydimk Посмотреть сообщение
ob_start также не сработает
эта функция вызывается в начале работы программы. можно даже первой строкой. до всех ошибок. Поверьте, в первой строке приложения она сработает. А если вы в нее передадите передадите функцию-обработчик буфера вывода, то при сбросе буфера сработает и он . В нем можно отловить все что угодно, для синтаксических ошибок это что-то типа
PHP
1
2
3
4
if (preg_match("~<br />\n<b>Parse error</b>\:\s~", $buffer)) {
            return create_error_page($buffer);//ошибка синтаксиса - формируем страницу вывода ошибки, отправляем мыло звоним по телефону форматируем диск и тд и тп
        }
        return $buffer;
в общем расширяйте кругозор
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.07.2015, 14:24

Запуск одного скрипта perl из другого
Всем привет, почему то перестала работать конструкция вида: my $name = &quot;test&quot;; our $iparam = $name; do...

Запуск скрипта для анализа папки и запуска другого скрипта
Мне нужно написать скрипт, который каждую секунду (или 5 сек) сканировал определенную папку на поиск определенного файла. Например...

Как из одного скрипта изменить переменную (int) другого скрипта?
У меня есть два скрипта (money который отвечает за общее количество денег и CarBuy который отвечает за покупку машины). Мне нужно, чтобы...

Unity - Обращение к публичным полям одного скрипта из другого скрипта
Привет. Скрипты пишу на CSharp. В одном gameObject (назовем его HelloObject) есть два скрипта - Script1 и Script2. У script2 есть...

Запуск функции другого скрипта
Столкнулся с такой проблемой. Есть Script1: IEnumerator Stopi() { float past_speed = speed; speed = 0f; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru