Новый комментарий

ivan.tretiakov 29.06.2021 в 05:27

Подключил бота к сайту на open server, все работает как надо, уведомления приходят. Но чтобы по уму все сделать, нужно попотеть над уроком №4 "Менеджер пакетов Composer" из курса PHP для профи. Отличная статья!

ivashkevich 05.07.2021 в 08:34

Супер) Рад, что оказалось полезно)

aaaaa@list.ru 20.09.2021 в 20:37
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <title>Отправляем сообщения в Telegram из PHP-скрипта</title>
    <meta name="description" content="Разбираемся как сделать уведомления в телеграм о событиях, происходящих на бэкенде, написанном на PHP.">
    <meta name="keywords" content="php, telegram, notifications">
    <link rel="canonical" href="https://php.zone/post/kak-otpravit-soobshenie-v-telegram-na-php" />
    <meta property="og:image" content="https://php.zone/uploads/img/20210623a89380dac58b5612b4d401ce2cda2aa12eb315237912ccaa90af94eace421523.jpg" />
    <meta name="twitter:image:src" content="https://php.zone/uploads/img/20210623a89380dac58b5612b4d401ce2cda2aa12eb315237912ccaa90af94eace421523.jpg" />
    <meta property="og:image:width" content="900" />
    <meta property="og:image:height" content="300" />
    <link rel="alternate" href="/feed/" title="PHP.Zone" type="application/rss+xml" />
    <meta name="theme-color" content="#00B2FD">
    <link rel="icon" href="/favicon.svg">
    <link rel="apple-touch-icon" href="/apple-touch-icon.png">
    <link rel="manifest" href="/manifest.json">
    <link href="/new/build/allStyles.min.css?1631955845318" rel="stylesheet">
    <link rel="preload" href="/fa/fonts/fontawesome-webfont.woff2?v=4.7.0" as="font" type="font/woff2" crossorigin>
    <script charset="UTF-8" src="//web.webpushs.com/js/push/c4ad7e4c18fb5791a34a0361512a6787_1.js" async></script>
</head>

<body>
<!--Main Navigation-->
<header>

    <!-- Navbar -->
    <nav class="navbar fixed-top navbar-expand-lg navbar-light bg-white scrolling-navbar top-nav-collapse">
        <div class="container px-0">
            <!-- Brand -->
            <a class="navbar-brand waves-effect" href="/" title="PHP.Zone">
                    <strong><span style="color: #00B0F9">php</span><span style="color: #212121">.zone</span></strong>
            </a>

            <!-- Collapse -->
            <button class="navbar-toggler pr-0" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>

            <!-- Links -->
            <div class="collapse navbar-collapse" id="navbarSupportedContent">

                <!-- Left -->
                <ul class="navbar-nav mr-auto mrMenuLeftPc">
                    <li class="mr-2 nav-item active ">
                        <a class="nav-link" href="/">Статьи</a>
                    </li>

                    <li class="mr-2 nav-item ">
                        <a class="nav-link" href="/courses">Курсы</a>
                    </li>

                    <li class="mr-2 nav-item  dropdown">
                        <a class="nav-link" href="#" id="navbarDropdownMenuLink3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            Задачи
                        </a>
                        <div class="dropdown-menu dropdown-menu-left" aria-labelledby="navbarDropdownMenuLink3">
                            <a class="dropdown-item" href="/problems">Алгоритмические задачи</a>
                            <a class="dropdown-item" href="/puzzles">Логические задачи</a>
                        </div>
                    </li>

                    <li class="mr-2 nav-item ">
                        <a class="nav-link" href="/code">Песочница</a>
                    </li>

                    <li class="mr-2 nav-item ">
                        <a class="nav-link" href="/tests">Тесты</a>
                    </li>

                    <li class="mr-2 nav-item ">
                        <a class="nav-link" href="/q-and-a">Q&A</a>
                    </li>

                    <li class="mr-2 nav-item ">
                        <a class="nav-link" href="/job">Работа</a>
                    </li>

                    <li class="nav-item  dropdown">
                        <a class="nav-link" href="#" id="navbarDropdownMenuLink2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            Автор
                        </a>
                        <div class="dropdown-menu dropdown-menu-left" aria-labelledby="navbarDropdownMenuLink2">

                            <a class="dropdown-item" href="/about">Как я стал программистом</a>
                            <a class="dropdown-item" href="/reviews">Отзывы учеников</a>
                            <a class="dropdown-item" href="/donate">Поддержать</a>
                            <a class="dropdown-item" href="/contacts">Контакты</a>

                        </div>
                    </li>
                </ul>

                <!-- Right -->
                <ul class="navbar-nav nav-flex-icons float-right">
                    <li class=" nav-item">
                        <a class="nav-link" href="/search?searchid=2288951&text=php&web=0"><span class="fa fa-search"></span></a>
                    </li>

                                            <li class="nav-item mr-2">
                            <a href="/user/login" class="nav-link border border-light rounded" title="Войти">
                                <i class="fa fa-sign-in mr-2"></i>Войти
                            </a>
                        </li>
                        <li class="nav-item">
                            <a href="/user/signup" class="nav-link border border-light rounded" title="Регистрация">
                                <i class="fa fa-user-plus"></i>
                            </a>
                        </li>

                </ul>
                <div class="clearfix"></div>
            </div>

        </div>
    </nav>
    <!-- Navbar -->

</header>

<!--Main Navigation-->
<div style="text-align: center;margin-top:65px; width:100%;" class="showOnMobile">
    <div class="container">
        <div class="row">
            <div class="col-md-9">
                <a onclick="yaCounter34416790.reachGoal('click-telegram-in-header')" class="btn btn-info btn-sm mx-0" style="font-size:large;width:100%" target="_blank" rel="nofollow" href="https://t.me/php_zone"><i class="fa fa-telegram fa-lg"></i> Чат в Telegram</a>
            </div>
        </div>
    </div>
</div>

<!--Main layout-->
<main class="mt-5 pt-5">
    <div class="container">

        <!--Section: Post-->
        <section>

            <!--Grid row-->
            <div class="row">

<!--Grid column-->
<aside class="col-lg-2 mb-4 hideOnMobile sidebar pl-0 pr-0" style="z-index: 90" id="sidebar">

            <div class="card pink mb-4 pt-2">
        <div class="card-body text-white text-center">
            <div class="font095 mb-2"><a class="white-text" href="/kurs-php-dlya-nachinayushih">Бесплатные курсы PHP</a> и <a class="white-text" href="/php-i-mysql-s-nulya">MySQL</a></div>

            <div style="text-align: center">
                <div style="text-align: center;" class="font09">

                    <div class="">
                        <a class="btn btn-white btn-sm mx-0" style="font-size: 0.7rem !important;" href="/kurs-php-dlya-nachinayushih">Начать обучение</a>
                    </div>
                </div>
            </div>

        </div>

    </div>

    <div class="card mb-4">
        <a style="font-size: .75rem" onclick="yaCounter34416790.reachGoal('click-telegram-in-sidebar')" rel="nofollow" target="_blank" href="https://t.me/php_zone" class="btn btn-sm btn-light-blue m-0 mx-0 mr-0 px-0 mt-0 shadow-none rounded"><i style="font-size: .8rem" class="fa fa-telegram"></i> Чат в Telegram</a>

    </div>
    <div class="card mb-4">
        <div class="sidebar-block-header card-header px-0">Новости проекта</div>
        <div class="card-body text-left pt-2 px-0">
            <a onclick="yaCounter34416790.reachGoal('click-telegram-chat-in-sidebar')" rel="nofollow" target="_blank" href="https://t.me/php_zone_chan"><img src="https://php.zone/app/img/social/telegram2.svg" width="33"  alt="YouTube"></a>
            <a onclick="yaCounter34416790.reachGoal('click-vkontakte-in-sidebar')" rel="nofollow" target="_blank" href="https://vk.com/php_zone"><img src="https://php.zone/app/img/social/vk.svg" width="33"  alt="ВКонтакте"></a>
            <a onclick="yaCounter34416790.reachGoal('click-facebook-in-sidebar')" rel="nofollow" target="_blank" href="https://www.facebook.com/php.zone.chan/"><img src="https://php.zone/app/img/social/facebook.svg" width="33"  alt="Facebook"></a>
            <a onclick="yaCounter34416790.reachGoal('click-twitter-in-sidebar')" rel="nofollow" target="_blank" href="https://twitter.com/php_zone_chan"><img src="https://php.zone/app/img/social/twitter.svg" width="33"  alt="Twitter"></a>
            <a onclick="yaCounter34416790.reachGoal('click-twitter-in-sidebar')" rel="nofollow" target="_blank" href="https://www.youtube.com/channel/UCXhQnwQUhGuz15pddQRW2-g"><img src="https://php.zone/app/img/social/youtube.svg" width="33"  alt="YouTube"></a>
        </div>

    </div>

        <div id="stickySidebar">

        <!--Card-->
<div class="card mb-4">

    <div class="sidebar-block-header card-header px-0">Курсы</div>

    <!--Card content-->
    <div class="card-body pt-2 px-0" style="padding-right: 0">
        <ul class="list-unstyled mb-0 font09">
            <li>
                                <a onclick="yaCounter34416790.reachGoal('click-html-in-sidebar')" href="/kurs-html-dlya-nachinayushih"
                   title="Курс HTML для начинающих">
                                        HTML для начинающих
                                    </a>
                        </li>
            <li>
                                <a onclick="yaCounter34416790.reachGoal('click-php-in-sidebar')" href="/kurs-php-dlya-nachinayushih"
                   title="Курс PHP для начинающих">
                                                PHP для начинающих
                                        </a>
                        </li>
            <li>
                                <a onclick="yaCounter34416790.reachGoal('click-mysql-in-sidebar')" href="/php-i-mysql-s-nulya"
                   title="Курс MySQL с нуля">
                                                MySQL с нуля
                                        </a>
                        </li>

            <li>
                                <a onclick="yaCounter34416790.reachGoal('click-oop-in-sidebar')" href="/oop-v-php-prodvinutyj-kurs"
                   title="ООП в PHP">
                                                ООП в PHP
                                        </a>
                        </li>

            <li>
                                <a onclick="yaCounter34416790.reachGoal('click-pro-in-sidebar')" href="/php-dlya-professionalov"
                   title="PHP для профессионалов">
                                                PHP для профи
                                        </a>

                        </li>

            <li>
                                <a onclick="yaCounter34416790.reachGoal('click-symfony-in-sidebar')" href="/symfony-course"
                   title="Курс по Symfony">
                                                Курс по Symfony
                                        </a>
                        </li>

            <li>
                                <a onclick="yaCounter34416790.reachGoal('click-laravel-insides-in-sidebar')" href="/laravel-insides"
                   title="Курс по Laravel">
                                                Внутренности Laravel
                                        </a>
                        </li>

        </ul>

    </div>

</div>
<!--/.Card-->

                    <div id="userLastSolutions" style="display:none;">
                            </div>
    </div>

</aside>
<!--Grid column-->
                <!--Grid column-->
                <div class="col-lg-8 col-md-9">

                    <div class="card breadcrumbs">
                        <div class="card-body">
                            <a href="/">Статьи</a>
                            <span class="mx-1 font-weight-light">/</span>
                            <a href="/rubric/backend">Backend</a>

                                                    </div>
                    </div>

                    <!--Card-->
                    <div class="card mb-0">
                        <!--Card content-->
                        <article class="card-body pb-0">

                            <div class="text-center">
                                <h1 class="h1 mb-4">
                                    Как сделать уведомления в телеграм на PHP                                </h1>
                            </div>

                            <div class="text-center m-4">
                            <div>

    <div class="mt-2">
                    <a href="/tag/php">#php</a>
                    <a href="/tag/telegram">#telegram</a>
                    <a href="/tag/notifications">#notifications</a>
            </div>

    <div class="mt-3">
        <div class="mb-3" style="display:inline-block;">
            <a class="mr-1" href="https://php.zone/user/1">@ivashkevich</a>
        </div>
        <div class="mb-3" style="display:inline-block;">
            <span class="dark-grey-text">23.06.2021 в 20:08</span>
        </div>
    </div>

    <div class="mr-3" style="display:inline-block;">
        <span class="dark-grey-text"><i class="fa fa-eye"></i> 1449</span>
    </div>
    <div class="dark-grey-text mr-3" style="display: inline-block">
        <a onclick="postRatingUp(1149)" class="postRatingUp text-primary" data-post-id="1149"><i class="fa fa-arrow-up postRatingUpArrow1149"></i></a> <div class="postRating postRatingValue1149" data-post-id="1149" style="display: inline-block">+8</div> <a onclick="postRatingDown(1149)" class="postRatingDown text-primary" data-post-id="1149"><i class="fa fa-arrow-down postRatingDownArrow1149"></i></a>
    </div>
    <div style="display:inline-block;">
                <a href="#comments"><i class="fa fa-comment"></i> 2</a>
    </div>
</div>                            </div>

                            <p>Привет! Сегодня поговорим о том, как можно отправить себе сообщение в телеграмме с помощью PHP. Это удобно использовать, когда нужно получить уведомление о каком-то событии, произошедшем на бэкенде. Например, я таким образом получаю уведомления о новых комментариях к урокам.</p>
            <div class="my-4 rgba-blue-slight" style="width: 100%;padding: 20px;text-align: center">
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-universal-kurs-php')" class="font11 text-black" href="https://php.zone/kurs-php-dlya-nachinayushih" title="Уроки программирования на PHP" target="_blank">Уроки программирования на PHP</a></div>
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-universal-kurs-php')" class="font09 text-black" href="https://php.zone/kurs-php-dlya-nachinayushih" title="Обучение PHP" target="_blank">Обучение с полного нуля до уровня джуниора!</a></div>
    <a onclick="yaCounter34416790.reachGoal('banner-universal-kurs-php')" target="_blank" rel="noopener noreferrer" class="btn btn-elegant shadow-none btn-sm" href="https://php.zone/kurs-php-dlya-nachinayushih" title="Курс PHP для начинающих">Начать бесплатно</a>
</div>    
<p>Первое, что нам нужно сделать - это зарегать в телеге нового бота. Это делается при помощи другого бота, которого зовут @BotFather. Пишем ему команду:</p>
<pre><code class="hljs">
/newbot
</code></pre>
<p>В ответ он попросит написать ему имя бота. Я назвал своего <strong>PhpZoneNotifier</strong>. Пишем, отправляем.</p>
<p>После этого он попросит прислать username для бота - это адрес, используемый в телеге для поиска пользователей. Username бота должен заканчиваться словом bot. Я выбрал в качестве юзернейма <strong>phpzonenotifier_bot</strong>. Отправляем.</p><div class="card rgba-blue-slight p-4 my-4">
    <div class="font11 mb-3 font-weight-bold"><a class="" href="/tests">Онлайн тесты</a></div>
    <div>
        <ul class="list-unstyled card-text font09">
            <li class="mb-2"><a href="/test-html">Тест на знание основ HTML</a></li>
            <li class="mb-2"><a href="/test-php">Тест на знание основ PHP</a></li>
            <li class="mb-2"><a href="/test-oop-v-php">Тест на знание ООП в PHP</a></li>
        </ul>
        <a href="/tests" class="btn btn-sm btn-elegant shadow-none ml-0">Все тесты</a>
    </div>
</div>

<p><a class="linkToImgInPost" target="_blank" href="https://php.zone/uploads/img/202106237c9fc2d0dc84f5c6846c4a1df08318fb1cc0abf228dede37d1b17b6cd3bb7493.png"><img class="imgInPost" src="https://php.zone/uploads/img/202106237c9fc2d0dc84f5c6846c4a1df08318fb1cc0abf228dede37d1b17b6cd3bb7493.png" alt="токен бота" /></a></p>
<p>В ответ получаем токен вида 123:ABCDEF. С помощью этого токена мы можем авторизоваться в телеге от имени этого бота.</p>
<p>Теперь нужно узнать наш собственный id в телеграме. По нему бот будет отправлять нам сообщения. Чтобы узнать этот айдишник, нужно написать боту @userinfobot команду /start.</p><div class="card rgba-blue-slight p-4 my-4">
    <div class="font11 mb-3 font-weight-bold"><a class="" href="/job">Новые вакансии</a></div>
    <div>
        <ul class="list-unstyled card-text font09">
                            <li class="mb-2">
                    <a href="https://php.zone/job/vacancies/28">PHP Team Lead <span class="">280000₽ - 320000₽</span></a>
                </li>
                            <li class="mb-2">
                    <a href="https://php.zone/job/vacancies/27">PHP-разработчик <span class="">80000₽ - 120000₽</span></a>
                </li>
                            <li class="mb-2">
                    <a href="https://php.zone/job/vacancies/26">Верстальщик <span class="">От 1000₽</span></a>
                </li>
                            <li class="mb-2">
                    <a href="https://php.zone/job/vacancies/25">Web-программист Bitrix <span class="">50000₽ - 90000₽</span></a>
                </li>
                            <li class="mb-2">
                    <a href="https://php.zone/job/vacancies/24">Программист Wordpress <span class="">35000₽ - 70000₽</span></a>
                </li>
                    </ul>
        <a href="/job" class="btn btn-sm btn-elegant shadow-none ml-0">Все вакансии</a>
        <a href="/job/vacancies/add" class="btn btn-sm btn-outline-elegant shadow-none ml-0">Разместить вакансию бесплатно</a>
    </div>
</div>

<p><a class="linkToImgInPost" target="_blank" href="https://php.zone/uploads/img/20210623e6a638c60266dff87c04df6c8ccb8d5f386f8a8122d96ab74c9f71d58775429f.png"><img class="imgInPost" src="https://php.zone/uploads/img/20210623e6a638c60266dff87c04df6c8ccb8d5f386f8a8122d96ab74c9f71d58775429f.png" alt="user id в телеге" /></a></p>
<p>После того, как мы получили auth token бота и наш id, можно приступать к написанию кода для отправки. Телеграм предоставляет довольно простой API для этого дела. Всё что нужно - это отправить POST-запрос на адрес:</p>
<pre><code class="hljs">
https://api.telegram.org/bot{BOT_AUTH_TOKEN}/sendMessage
</code></pre>
<p>Где вместо {BOT_AUTH_TOKEN} подставить токен бота, полученный выше.</p>
<p>В теле запроса нужно передать 2 параметра:</p>
<ul>
<li>
<p>chat_id - сюда передаём наш id пользователя</p>
</li>
<li>text - сюда передаём текст сообщения</li>
</ul>
<p>Для отправки запроса я использовал Guzzle.</p>
<pre><code class="hljs">
&lt;?php

namespace PhpZone\Services;

use GuzzleHttp\Client;

use GuzzleHttp\RequestOptions;

class TelegramNotifier

{

    public static function notify($text)

    {

        $client = new Client();

        try {

            $client-&gt;post('https://api.telegram.org/bot1869549332:AAGhlRm5*************/sendMessage', [

                RequestOptions::JSON =&gt; [

                    'chat_id' =&gt; 298160970,

                    'text' =&gt; $text,

                ]

            ]);

        } catch (\Exception $e) {

            var_dump($e-&gt;getMessage());

        }

    }

}
</code></pre>
<p>После чего пытаемся отправить сообщение, вызвав:</p>
<pre><code class="hljs">
TelegramNotifier::notify('lol kek cheburek');
</code></pre>
<p>И видим, что произошло исключение. var_dump вывел следующее:</p>
<pre><code class="hljs">
{"ok":false,"error_code":400,"description":"Bad Request: chat not found"}
</code></pre>
<p>Так происходит потому что у бота нет чата с вами. Это защита телеги от рассылки спама - чтобы боту было позволено вам писать, вы сначала должны сами написать боту. Так что просто пишем нашему новому боту <strong>/start</strong> и снова пробуем запустить наш PHP-скриптик.</p>
<p>Получаем наше заветное уведомление.</p>
<p><a class="linkToImgInPost" target="_blank" href="https://php.zone/uploads/img/202106236f8e2b8d480e30fa8256af8b1b43f5a5bbea0e7c5baeefbd9617d58999c09820.png"><img class="imgInPost" src="https://php.zone/uploads/img/202106236f8e2b8d480e30fa8256af8b1b43f5a5bbea0e7c5baeefbd9617d58999c09820.png" alt="уведомление от бота" /></a></p>
<p>Изи. Не забываем убрать отладочный var_dump из кода и добавить корректную обработку исключений.</p>
                                                            <div id="share-buttons" class="text-center"><img class="m-5" style="max-width: 200px"
                                                                                 src="https://php.zone/app/img/loader.gif"
                                                                                 alt="loader"></div>

                                <div class="text-center m-4">
                                    <div>

    <div class="mt-2">
                    <a href="/tag/php">#php</a>
                    <a href="/tag/telegram">#telegram</a>
                    <a href="/tag/notifications">#notifications</a>
            </div>

    <div class="mt-3">
        <div class="mb-3" style="display:inline-block;">
            <a class="mr-1" href="https://php.zone/user/1">@ivashkevich</a>
        </div>
        <div class="mb-3" style="display:inline-block;">
            <span class="dark-grey-text">23.06.2021 в 20:08</span>
        </div>
    </div>

    <div class="mr-3" style="display:inline-block;">
        <span class="dark-grey-text"><i class="fa fa-eye"></i> 1449</span>
    </div>
    <div class="dark-grey-text mr-3" style="display: inline-block">
        <a onclick="postRatingUp(1149)" class="postRatingUp text-primary" data-post-id="1149"><i class="fa fa-arrow-up postRatingUpArrow1149"></i></a> <div class="postRating postRatingValue1149" data-post-id="1149" style="display: inline-block">+8</div> <a onclick="postRatingDown(1149)" class="postRatingDown text-primary" data-post-id="1149"><i class="fa fa-arrow-down postRatingDownArrow1149"></i></a>
    </div>
    <div style="display:inline-block;">
                <a href="#comments"><i class="fa fa-comment"></i> 2</a>
    </div>
</div>                                </div>
                                                    </article>
                    </div>
                    <!--/.Card-->

<!--    -->    <div class="card rgba-blue-slight p-4 my-4">
    <div class="font11 mb-3 font-weight-bold"><a class="" href="/problems">Алгоритмические задачи</a></div>
    <div>
        <ul class="list-unstyled card-text font09">
            <li class="mb-2"><a href="/problems/1">Привет, мир!</a></li>
            <li class="mb-2"><a href="/problems/2">Развернуть строку</a></li>
            <li class="mb-2"><a href="/problems/3">Чётные числа</a></li>
            <li class="mb-2"><a href="/problems/4">Числа Фибоначчи</a></li>
        </ul>
        <a href="/problems" class="btn btn-sm btn-elegant shadow-none ml-0">Все задачи</a>
    </div>
</div>
    <input style="display: none" type="file" id="hiddenFileUpload">
<!--Comments-->
<div class="card card-comments mb-4" id="comments">
        <h5 class="card-header"><a style="color: #212529" href="/comments/1149">Комментарии</a></h5>

    <div class="card-body pb-0">
                                <div class="mb-4">
                                    <div class="my-2">Новый комментарий</div>
<form id="addComment0"
      method="post"
      action="/post/1149#comment0"
>
    <input type="hidden" name="replyOnComment" value="0">
    <div class="tab-content">
        <div role="tabpanel" class="tab-pane active" id="replyOnComment0source">
            <textarea id="addComment0-form-input" data-provide="markdown" data-hidden-buttons="cmdPreview" class="form-control" rows="8"></textarea>
        </div>
        <div role="tabpanel" class="tab-pane" id="replyOnComment0preview" style="background-color: white; padding: 10px">
        </div>
    </div>
    <div style="margin-top: 10px;margin-bottom: 10px">
        <label class="font09" for="addComment0-form-email">Email:</label><br><input class="form-control" type="email" id="addComment0-form-email" >
    </div>
    <div id="addComment0-form-error" class="error-comment alert alert-danger" style="display: none;margin-top:5px;margin-bottom:0;"></div>
    <div class="text-center">
<!--        -->        <a id="addComment0-form-button" onclick="addComment(1149, 0)" class="btn btn-success" style="margin-top: 5px;">
            Отправить
        </a>
    </div>
</form>                            </div>

                                            <div class="mt-4" id="replaceComments">
                    <div class="text-center">
                        <a data-disable-autoload="0" class="btn btn-outline-black showCommentsButton" data-src="2" data-id="1149" onclick="showComments(1149)">Показать все комментарии (2)</a>
                    </div>

                                    </div>
                            <a id="lastAnswerForComment0"></a>
            </div>
</div>
<!--/.Comments-->
    <div class="card rgba-blue-slight p-4 my-4">
    <div class="font11 mb-3 font-weight-bold"><a class="" href="/courses">Онлайн курсы</a></div>
    <div>
        <ul class="list-unstyled card-text font09">
            <li class="mb-2"><a href="/kurs-html-dlya-nachinayushih">Курс HTML для начинающих</a></li>
            <li class="mb-2"><a href="/kurs-php-dlya-nachinayushih">Курс PHP для начинающих</a></li>
            <li class="mb-2"><a href="/php-i-mysql-s-nulya">Курс MySQL для начинающих</a></li>
            <li class="mb-2"><a href="/oop-v-php-prodvinutyj-kurs">Курс ООП в PHP</a></li>
        </ul>
        <a href="/courses" class="btn btn-sm btn-elegant shadow-none ml-0">Все курсы</a>
    </div>
</div>
    <div class="card readAlso">

    <div class="card-header font11">Читайте также</div>

    <div class="card-body">
                            <div class="font09 mb-3">
                    <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/post/screen-v-linux">
                        Как запускать долгоживущие скрипты на удаленном сервере                    </a>
                </div>
                            <div class="font09 mb-3">
                    <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/kurs-php-dlya-nachinayushih/otladka-php-koda-s-pomoshchyu-xdebug-v-phpstorm">
                        Отладка PHP 8 с помощью Xdebug 3 в PHPStorm                    </a>
                </div>
                            <div class="font09 mb-3">
                    <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/post/kphp-in-life">
                        Пробуем KPHP: реально ли его использовать в своих проектах                    </a>
                </div>
                            <div class="font09 mb-3">
                    <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/post/ustanovka-i-nastroyka-xampp">
                        Установка и настройка XAMPP                    </a>
                </div>
                            <div class="font09 ">
                    <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/php-dlya-professionalov/paginaciya-na-php-dlya-bolshogo-kolichestva-zapisey">
                        Пагинация на PHP для большого количества записей                    </a>
                </div>
                </div>

</div>

                </div>
                <!--Grid column-->

<!--Grid column-->
<aside class="col-lg-2 mb-4 hideOnMobile sidebar pl-0 pr-0" style="z-index: 90" id="sidebar-right">

    <div class="card mb-4" id="stickySidebar2">
        <div class="sidebar-block-header card-header px-0 pt-0 font11">Предложенные темы</div>
        <div class="card-body pt-2 px-0">
            <ul class="list-unstyled mb-3 font09">
                                    <li class="mb-2"><a href="/post/offer-theme#theme1" class="font09 mb-2">Тестирование PHP-приложений</a></li>
                                    <li class="mb-2"><a href="/post/offer-theme#theme15" class="font09 mb-2">Платежная система</a></li>
                                    <li class="mb-2"><a href="/post/offer-theme#theme21" class="font09 mb-2">Контейнеризация, использование Docker. Виртуальные машины, Vagrant.</a></li>
                                    <li class="mb-2"><a href="/post/offer-theme#theme19" class="font09 mb-2">реализация контейнера DI</a></li>
                                    <li class="mb-2"><a href="/post/offer-theme#theme24" class="font09 mb-2">Javascript lesson</a></li>
                            </ul>
            <div class="card mb-3 text-center">
                <a style="font-size: .75rem" onclick="yaCounter34416790.reachGoal('click-all-offered-themes-in-sidebar')" href="/post/offer-theme#allThemes" class="btn btn-sm btn-outline-elegant m-0 mx-0 mr-0 px-0 shadow-none rounded">Посмотреть все темы</a>
            </div>
            <div class="card mb-2 text-center">
                <a style="font-size: .75rem" onclick="yaCounter34416790.reachGoal('click-offer-post-in-sidebar')" href="/post/offer" class="btn btn-sm btn-elegant m-0 mx-0 mr-0 px-0 shadow-none rounded">Написать статью</a>
            </div>
            <div class="card text-center">
                <a style="font-size: .75rem" onclick="yaCounter34416790.reachGoal('click-offer-post-in-sidebar')" href="/post/offer-theme" class="btn btn-sm btn-elegant m-0 mx-0 mr-0 px-0 shadow-none rounded">Предложить тему</a>
            </div>
        </div>

                        <div class="card blue mb-4 mt-3 pt-2">
            <div class="card-body text-white text-center">
                <div class="font095 mb-2"><a class="white-text" href="/kurs-php-dlya-nachinayushih">Бесплатные курсы PHP</a> и <a class="white-text" href="/php-i-mysql-s-nulya">MySQL</a></div>

                <div style="text-align: center">
                    <div style="text-align: center;" class="font09">

                        <div class="">
                            <a class="btn btn-white btn-sm mx-0" style="font-size: 0.7rem !important;" href="/kurs-php-dlya-nachinayushih">Начать обучение</a>
                        </div>
                    </div>
                </div>

            </div>

        </div>

    </div>

</aside>
<!--Grid column-->            </div>
            <!--Grid row-->

        </section>
        <!--Section: Post-->

    </div>
</main>
<!--Main layout-->

<div class="container">
    <div class="row">
        <div class="col-lg-2 mb-3 hideOnMobile"></div>

        <!--Grid column-->
        <div class="col-lg-8 col-md-9 mb-3">

            <div class="my-4 rgba-blue-slight" style="width: 100%;padding: 20px;text-align: center">
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-offer-theme')" class="font11 text-black" href="https://php.zone/post/offer-theme" target="_blank">Хочешь статью от авторов проекта?</a></div>
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-offer-theme')" class="font09 text-black" href="https://php.zone/post/offer-theme" target="_blank">Предлагай темы! Мы напишем!</a></div>
    <a onclick="yaCounter34416790.reachGoal('banner-offer-theme')" target="_blank" rel="noopener noreferrer" class="btn btn-elegant shadow-none btn-sm" href="https://php.zone/post/offer-theme">Предложить тему</a>
</div>

            <div class="card readAlso">
                <div class="card-header font11">Популярное за сутки</div>
                <div class="card-body">
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/post/yazyki-programmirovaniya-dlya-veb-razrabotki">
                                Языки программирования и технологии для веб-разработки                            </a>
                        </div>
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/kurs-php-dlya-nachinayushih/funkcii-v-php">
                                Функции в PHP                            </a>
                        </div>
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/kurs-php-dlya-nachinayushih/usloviya-v-php">
                                Условия в PHP                            </a>
                        </div>
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/kurs-php-dlya-nachinayushih/ustanovka-i-nastroyka-openserver">
                                Установка и настройка OpenServer                            </a>
                        </div>
                                            <div class="font09 ">
                            <a onclick="yaCounter34416790.reachGoal('click-read-also')" href="https://php.zone/post/bezobidnye-virusy-bat">
                                Безобидные вирусы .bat                            </a>
                        </div>
                                    </div>
            </div>

            <div class="my-4 rgba-blue-slight" style="width: 100%;padding: 20px;text-align: center">
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-forum')" class="font11 text-black" href="https://php.zone/post/offer-theme" target="_blank">Есть вопрос по программированию?</a></div>
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-forum')" class="font09 text-black" href="https://php.zone/post/offer-theme" target="_blank">Спроси на форуме. Здесь ответят.</a></div>
    <a onclick="yaCounter34416790.reachGoal('banner-forum')" target="_blank" rel="noopener noreferrer" class="btn btn-elegant shadow-none btn-sm" href="https://php.zone/q-and-a">Создать тему</a>
</div>

            <div class="card readAlso">
                <div class="card-header font11">Сейчас читают</div>
                <div class="card-body">
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-interesting-in-footer')" href="https://php.zone/kurs-php-dlya-nachinayushih/usloviya-v-php">
                                Условия в PHP                            </a>
                        </div>
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-interesting-in-footer')" href="https://php.zone/kurs-php-dlya-nachinayushih/peremennye-v-php">
                                Переменные в PHP                            </a>
                        </div>
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-interesting-in-footer')" href="https://php.zone/kurs-php-dlya-nachinayushih/kak-zagruzit-fayl-na-server-v-php">
                                Загрузка файлов на сервер                            </a>
                        </div>
                                            <div class="font09 mb-3">
                            <a onclick="yaCounter34416790.reachGoal('click-interesting-in-footer')" href="https://php.zone/oop-v-php-prodvinutyj-kurs/zadanie-dlya-samostoyatelnoy-raboty">
                                Задание для самостоятельной работы – доводим блог до ума                            </a>
                        </div>
                                            <div class="font09 ">
                            <a onclick="yaCounter34416790.reachGoal('click-interesting-in-footer')" href="https://php.zone/php-i-mysql-s-nulya/rabota-s-mysql">
                                Работа с MySQL                            </a>
                        </div>
                                    </div>
            </div>

            <div class="my-4 rgba-blue-slight" style="width: 100%;padding: 20px;text-align: center">
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-forum')" class="font11 text-black" href="https://php.zone/post/offer-theme" target="_blank">Есть вопрос по программированию?</a></div>
    <div style="margin-bottom: 10px"><a onclick="yaCounter34416790.reachGoal('banner-forum')" class="font09 text-black" href="https://php.zone/post/offer-theme" target="_blank">Спроси на форуме. Здесь ответят.</a></div>
    <a onclick="yaCounter34416790.reachGoal('banner-forum')" target="_blank" rel="noopener noreferrer" class="btn btn-elegant shadow-none btn-sm" href="https://php.zone/q-and-a">Создать тему</a>
</div>

        </div>
        <!--Grid column-->
        <div class="col-lg-2 mb-3 hideOnMobile"></div>
    </div>
</div>

<div style="text-align: center; width:100%;" class="showOnMobile mb-4">
    <a class="btn btn-success" style="font-size:large;width:92%;padding: 0.84rem 1.14rem" target="_blank" rel="nofollow" href="https://play.google.com/store/apps/details?id=com.logistorm.brainteaser"><i class="fa fa-android fa-lg"></i> Логические задачи с собеседований</a>
</div>

<!--Footer-->
<footer id="footer" class="page-footer mdb-color darken-2 mt-4 center-on-small-only">

    <!--Footer links-->
    <div class="container">
        <div class="row mt-4">
            <!--First column-->
            <div class="col-lg-3 col-md-6">
                                <img src="/app/img/avatars/author.png" style="width: 140px;" class="mb-4" alt="Артём Ивашкевич">
                                <h5 class="title mb-3">
                    <strong>Об авторе</strong>
                </h5>
                <p>Если вам интересно узнать <br> как я стал программистом, <br>читайте <a style="text-decoration: underline;" href="https://php.zone/about">вот эту</a> статью.</p>
            </div>
            <!--/.First column-->
            <hr class="w-100 clearfix d-sm-none">
            <!--Second column-->
            <div class="col-lg-3 col-md-6 ml-auto">
                <h5 class="title mb-3">
                    <a href="https://php.zone/courses">Курсы <span style="color: #2e3951">PHP</span></a>
                </h5>
                <ul>
                    <li>
                        <a href="https://php.zone/kurs-html-dlya-nachinayushih">Курс HTML для начинающих</a>
                    </li>
                    <li>
                        <a href="https://php.zone/kurs-php-dlya-nachinayushih">PHP для начинающих</a>
                    </li>
                    <li>
                        <a href="https://php.zone/php-i-mysql-s-nulya">Курс MySQL с нуля</a>
                    </li>
                    <li>
                        <a href="https://php.zone/oop-v-php-prodvinutyj-kurs">ООП в PHP</a>
                    </li>
                    <li>
                        <a href="https://php.zone/php-dlya-professionalov">PHP для профессионалов</a>
                    </li>
                    <li>
                        <a href="https://php.zone/symfony-course">Курс по Symfony</a>
                    </li>
                    <li>
                        <a href="https://php.zone/laravel-insides">Курс по Laravel</a>
                    </li>
                </ul>

                <h5 class="title mb-3 mt-4">
                    <strong>Тесты</strong>
                </h5>
                <ul>
                    <li><a href="/test-html">Тест по основам HTML</a></li>
                    <li><a href="/test-php">Тест по основам PHP</a></li>
                    <li><a href="/test-oop-v-php">Тест по ООП в PHP</a></li>
                    <li><a href="/test-mysql">Тест по основам MySQL</a></li>
                </ul>
            </div>
            <!--/.Second column-->
            <hr class="w-100 clearfix d-sm-none">
            <!--Third column-->
            <div class="col-lg-3 col-md-6 ml-auto">
                <h5 class="title mb-3">
                    <strong>Статьи</strong>
                </h5>
                <ul>
                                            <li><a href="/rubric/backend">Backend</a></li>
                                            <li><a href="/rubric/frontend">Frontend</a></li>
                                            <li><a href="/rubric/opinions">Мнения</a></li>
                                            <li><a href="/rubric/diy">DIY</a></li>
                                            <li><a href="/rubric/tools">Инструменты</a></li>
                                            <li><a href="/rubric/etc">Прочее</a></li>
                                            <li><a href="/rubric/other">Другое</a></li>
                                    </ul>

                <h5 class="title mb-3 mt-4">
                    <strong>Разное</strong>
                </h5>
                <ul>
                    <li><a href="/code">Песочница</a></li>
                    <li><a href="/problems">Алгоритмические задачи</a></li>
                    <li><a href="/puzzles">Логические задачи</a></li>
                    <li><a href="/q-and-a">Вопросы и ответы</a></li>
                </ul>
            </div>
            <!--/.Third column-->
            <hr class="w-100 clearfix d-sm-none">
            <!--Fourth column-->
            <div class="col-lg-2 col-md-6 ml-auto">
                <ul>
                    <li><a href="/donate">Поддержать&nbsp;проект</a></li>
                    <li><a href="/contacts">Контакты</a></li>
                    <li><a href="/reviews">Отзывы учеников</a></li>
                    <li><a href="/rating">Рейтинг</a></li>
                    <li><a href="/privacy">Конфиденциальность</a></li>
                    <li><a href="/contract">Договор-оферта</a></li>
                </ul>
            </div>
            <!--/.Fourth column-->
        </div>
    </div>
    <!--/.Footer links-->

    <hr class="my-4">

    <!-- Social icons -->
    <div class="pb-4 text-center">
        <a rel="nofollow" href="https://vk.com/php_zone" target="_blank">
            <i class="fa fa-vk mr-3"></i>
        </a>

        <a rel="nofollow" href="https://t.me/php_zone_chan" target="_blank">
            <i class="fa fa-telegram mr-3"></i>
        </a>

        <a rel="nofollow" href="https://www.facebook.com/php.zone.chan/" target="_blank">
            <i class="fa fa-facebook mr-3"></i>
        </a>

        <a rel="nofollow" href="https://twitter.com/php_zone_chan" target="_blank">
            <i class="fa fa-twitter mr-3"></i>
        </a>

        <a rel="nofollow" href="https://www.youtube.com/channel/UCXhQnwQUhGuz15pddQRW2-g" target="_blank">
            <i class="fa fa-youtube mr-3"></i>
        </a>

        <a href="https://php.zone/feed" target="_blank">
            <i class="fa fa-rss mr-3"></i>
        </a>
    </div>
    <!-- Social icons -->

    <!--Copyright-->
    <div class="footer-copyright py-3 text-center font-small">
        Самозанятый Ивашкевич&nbsp;А.В. ИНН&nbsp;543570142160 <br>
        © 2016-2021 PHP.Zone
        <br>

<!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(34416790, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/34416790" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->

<script>
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

    ga('create', 'UA-70299615-1', 'auto');
    ga('send', 'pageview');
</script>

    </div>
    <!--/.Copyright-->

</footer>
<!--/.Footer-->

<a style="background-color: #00B0F9 !important;" title="Наверх" id="back-to-top" href="#" class="btn btn-primary" role="button" data-placement="left"><i class="fa fa-chevron-up"></i></a>

    <script src="https://php.zone/new/build/guests.min.js?1631955845318" async defer></script>

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

<script>
</script>

</body>

</html><!--Process Time: 0.15410804748535--><!--MySQL Queries: 13--><!--Memory peak usage: 2.5127868652344 Mb-->
Логические задачи с собеседований