public function renderPhpFile($_file_, $_params_ = [])
{
$_obInitialLevel_ = ob_get_level();
ob_start();
ob_implicit_flush(false);
extract($_params_, EXTR_OVERWRITE);
try {
require $_file_;
return ob_get_clean();
} catch (\Exception $e) {
while (ob_get_level() > $_obInitialLevel_) {
if (!@ob_end_clean()) {
ob_clean();
}
}
throw $e;
} catch (\Throwable $e) {
while (ob_get_level() > $_obInitialLevel_) {
if (!@ob_end_clean()) {
ob_clean();
}
}
throw $e;
}
}
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['single', 'telegram'],
'ignore_exceptions' => false,
],
'telegram' => [
'driver' => 'monolog',
'handler' => Monolog\Handler\TelegramBotHandler::class,
'with' => [
'apiKey' => env('TELEGRAM_BOT_TOKEN'),
'channel' => env('TELEGRAM_BOT_CHAT_ID'),
],
],
],
// запрос на тестовый адрес
$url = 'https://goooooogle.com/my-ip.php';
// ip и порт прокси
$proxy = '100.000.00.01:8080';
// если требуется авторизация на прокси-сервере
//$proxyauth = 'user:password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// подключение к прокси-серверу
curl_setopt($ch, CURLOPT_PROXY, $proxy);
// если требуется авторизация
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
// отправка запроса
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
// вывод ответа сервера
// должен вернуть все заголовки и ip с которого
// было обращение, в данном случае это 100.000.00.01
var_dump($curl_scraped_page);