• Почему интерпретатор php не воспринимает кириллицу?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Перед тем, как писать веб-серверы на C#, надо учиться описывать проблемы не языком домохозяек.

    Не существует такой кодировки - "кириллица". Есть конкретная кодировка, которую необходимо указать в вопросе.
    Нет такой команды в C# -"послать интерпретатору". Есть конкретная команда или действие, которое надо описать в вопросе.
    Нет такой команды - "сказать, что находится по пути". Есть конкретный код, который надо привести в вопросе.
    РНР - не посетитель в ресторане, чтобы "отказываться". Это программа. Которая либо работает, либо выдаёт сообщение об ошибке. Которое программист должен прочитать. Или по крайней мере, если не понял в нем ни одного слова, то аккуратно скопировать в свой вопрос.

    В целом РНР прекрасно работает с любыми кодировками, которые используются для отображения русских букв, даже с теми адовыми костылями, которые используются в Микрософт Виндоус с середины конца прошлого века по сей день.

    Для того чтобы убедиться в том, что РНР прекрасно работает с русскими буквами, надо создать скрипт test.php
    <?php
    header('Content-Type: text/html; charset=utf-8');
    echo hex2bin('d0bfd180d0b8d0b2d0b5d182'); 
    // текст UTF закодировн в hex чтобы избежать влияния кривых ручек тестировщика/выкрутасов Виндоус


    перейти в папку с ним
    запустить встроенный веб-сервер
    php -S localhost:8081
    и открыть в браузере адрес localhost:8081/test.php

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

    Судя по классической картинке, https://habr.com/en/post/147843/ где-то происходит перекодирование utf-8 -> 866(!)
    Ответ написан
    1 комментарий
  • Как быть с 4 уровневой вложенностью кавычек в HTML?

    Adamos
    @Adamos
    $value = <<<CODE
    <form method="post">
     <button type="submit" onclick="return confirmDelivery()">Доставить</button>
    </form>
    <script>
     function confirmDelivery()
      { return confirm('Вы уверены, что хотите сменить статус на "Доставлен"?'); }
    </script>
    CODE;
    Ответ написан
    Комментировать
  • Желание не вылазить из одного языка - это лень?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    С одной стороны, для фронта нормально знать только JS, так как ничего больше на фронте и нет, если отбросить нюансы. С другой, изучение нового тренирует мозг, увеличивает его пластичность, позволяет смотреть на проблемы под другими углами. Всё это полезно, как для профессионального роста, так и для здоровья.
    Ответ написан
    2 комментария
  • Почему INSERT вставляет 2 строки вместо одной?

    @galaxy
    Скорее всего, потому что два раза дергается скрипт index.php.
    Он ведь у вас любой url обрабатывает?
    Смотите в браузере Network в Developer tools - наверняка там какой-нибудь запрос на favicon
    Ответ написан
    Комментировать
  • Как работают PHP-потоки (stream)? почему они не загружаются полностью в память?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Эту инфу нужно искать в отрыве от языка, это уровень операционной системы.
    Один из ответов на SO:
    What is Under the Hood in a Stream in Programming?
    Upd. Еще есть пересекающаяся тема как http streaming,
    я когда-то для себя шпаргалку писала (ссылка)
    Ответ написан
    1 комментарий
  • Есть ли смысл при подаче резюме?

    @mkone112
    Начинающий питонист.
    Если брать к примеру вакансии "на завод", то там ситуация обратная — позвонил, значит заинтересован. Отравил мусорное резюме, значит не заинтересован.

    Просто отправляй не мусорное резюме. Тогда это уже hr будет думать - звонить тебе или писать.
    Ответ написан
    Комментировать
  • Как скрыть токен телеграм бота на сайте?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    PHP и не будет ничего «палить», если вы сами не будете эти данные клиентам отдавать.
    Ответ написан
    1 комментарий
  • Какие есть варианты повышения для вебмастера?

    Tomio
    @Tomio
    backend developer (python, php)
    Когда-то очень давно я был в такой же ситуации, как и вы. Просто упёрся в потолок. И тут дело даже не в зп, мне могли ее повысить. Дело в пуле задач, которые я решал. Он был ограничен веб-мастерингом, очень разрозненным (сео, формошлёпство, вёрстка, контент).
    В итоге, как бы комфортно мне ни было, я решил, что нужно двигаться дальше. Сменил работу, стал чисто бэкендером. В итоге хорошо прокачал PHP, MySQL, освоил Git. Потом снова сменил работу, освоил на ней Symfony, Clickhouse, Kubernetes. А потом вообще сменил язык и сейчас активно работаю на Python с очень крутым стэком. Соответственно, зп моя очень сильно выросла, так как знаний и опыта стало больше и цениться на рынке я стал выше. А главное, я кайфую сейчас от того, чем занимаюсь)
    Не бойтесь, вырывайтесь из этого болота, пока не поздно. Думайте наперёд.
    Ответ написан
    Комментировать
  • Какие есть варианты повышения для вебмастера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вырасти из web-мастера в программисты, сменив "seo-компанию" на нормальную.
    Ответ написан
    Комментировать
  • Агрегация сетевых каналов?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    Все правильно. Два гигабита между двумя конкретными хостами можно получить только при политике Round-Robin, (когда пакеты по очереди попададают то в один, то в другой сетевой интерфейс).

    Венда и циско это не поддерживают - только линукс и микротик.

    В остальных случаях, вы будете иметь ускорение для доступа от разных хостов (потому что при политике разделения по макам, которая является дефолтной, пакеты в интерфейсы будут попадать в зависимости от MAC)
    Ответ написан
    1 комментарий
  • Что принципиально отличает Symfony 5 от Laravel 8?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    1. Прежде всего нужно понимать, что любой Framework, в руках хорошего разработчика будет жить долго и хорошо.
    2. Framework — это инфраструктура. Framework не предоставляет Вам готовый код и не задаёт архитектуру, он предоставляет Вам низкоуровневые инструменты или их быструю интеграцию, в которых нет необходимости писать с нуля под каждый проект. Хотя, ради практики, было бы не плохо попробовать это сделать, чтобы разобраться в данном вопросе, но сейчас не об этом. Исходя из этого Ваш код должен быть независим от какого-либо Фреймворка. Устарел Yii2 framework —поменяли контроллеры, немного инфраструктуры и код работает уже на Symfony или Laravel. Это касается не только Фреймворков, любая сторонняя библиотека должна быть изолирована от прямого использования. Это позволит Вам быть более гибче и сделает Ваш код менее связанным и зависимым.
    3. Оба Фреймворка популярны и имеют право на существование. У всех разный порог входа, разное сообщество и разные решения. На Symfony код пишется чуть сложнее и дольше, так как нет привычных фасадов. Многие компоненты и Фреймворки используют компоненты Symfony в виде своих обёрток. Однако, нужно понимать, что Фреймворк задаёт немного стиля в разработке, у Symfony этот стиль более правильный и строгий. Поэтому, использование Symfony интуитивно подталкивает Вас к написанию более чистого кода, без погружения в различные паттерны.
    4. Doctrine — это НЕ тот же Eloquent. Это совершенно разные вещи!
      Eloquent —это анти паттерн Active Record, а Doctrine это паттерн Data Mapper. Если речь идёт о быстрой разработке и не долгоживущем или небольшом проекте, то можно взять и её, однако на долгий срок лучше использовать Data Maper типа Doctrine, Cycle. При таком подходе ваши поля «не торчат» напрямую из базы данных в код. При изменении столбца в БД — его не придётся менять по всему проекту. Для Data Mapper подход — Code First (Вначале код), а для Active Record — Table Fist (Вначале таблицы). При использовании Data Mapper мы не думаем как будут храниться наши данные в БД, не думаем какая будет БД, что не скажешь по AR.

    Тема фреймворков на Q&A поднимается очень часто. Лично мне приходилось много раз отвечать на подобные вопросы. Вы можете сами в этом убедится по моим ответам:

    Поэтому, серьёзно к таким вопросам здесь не относятся. Чтобы понять разницу — Вам, очевидно, нужно попробовать оба Фреймворка в разных ситуациях. Со временем Вы сами всё поймете. А если Вас устраивает Laravel и не предвидится какого-то большого развития — пользуйтесь. Пару строк кода можно написать и без какого-либо Фреймворка. Главное — результат и правильно подобранный инструмент.
    Ответ написан
  • Как найти работу на С++ после вуза?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Открываете сайт hh.ru и идете по собесам. Так вы узнаете и о вакансиях, и о своей возможности получить оффер.
    Ответ написан
    Комментировать
  • Как получить данное выражение из строки?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    /(\|\|description\|[^|]+\|\|)/

    PHP code:
    <?php
    $string = 'poster|text||title|text||title_en|text||year|2020||description|тут могут быть любые символы||countries|text||genres|text|| .....';
    preg_match('/(\|\|description\|[^|]+\|\|)/', $string, $matches);
    
    var_dump($matches[1]);
    Ответ написан
    Комментировать
  • Почему я могу отметить чужой ответ решением?

    Это было и вчера. Это не баг. Вы не можете помечать ответы решениями, но вы можете через эту кнопку голосовать за то, чтобы через некоторое время ответ был помечен решением автоматически, если этого не сделает автор вопроса.
    Ответ написан
    2 комментария
  • Что происходит на рынке труда в айти?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Часто собеседую людей. Действительно толковых - единицы...
    Найти хоть более-менее разбирающегося в вопросе очень тяжело - и это я не лезу в высокие материи типа тонкостей использования семафоров в ядре линукс (как когда-то меня самого спрашивали при собеседовании на позицию разработчика python %) ), а спрашиваю про самые базовые понятия, с учетом того что если человек толковый и понимает то что сам говорит - то в остальном сам разберется...
    После курсов не помню никого кто бы смог пройти собеседование и заинтересовать.
    Так что про легкость входа в IT - это обычный маркетинг.
    Ответ написан
    3 комментария
  • В чем разница между docker-compose и gitlab ci services?

    vabka
    @vabka
    Токсичный шарпист
    docker-compose - это инструмент для создания композиции из докер-контейнеров
    gitlab ci services - это штука для поднятия каких-то сервисов доступных во время процесса ci/cd
    И то, и другое, позволяет управлять приложением из нескольких образов, верно?

    Нет, не верно - это делает только docker-compose

    Принципиально они предназначены для решения совершенно разных задач.

    Короче вы пытаетесь сравнить тёплое с мягким.

    Вот если у меня зависимость от СУБД, где её надо прописывать? В services? В .docker-compose.yml?

    Если эта зависимость возникает на этапе тестирования, то да - в services
    Если эта зависимость возникает на этапе работы в проде - тогда уже разбираться с продакшен окружением надо, а не с гитлабом, в том числе и с композом, если вы используете его.
    Ответ написан
    1 комментарий
  • Как правильно, сначала создать git repo или сначала сгенерировать файлы и потом пушить в git?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Как угодно
    Ответ написан
    Комментировать
  • Что за ... вместо тела функции?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    .pyi - stab-файлы, которые нужны только для тайпчекинга и не используются в рантайме.
    https://www.python.org/dev/peps/pep-0484/#id44
    Ответ написан
    Комментировать
  • Что за ... вместо тела функции?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Вы бы хоть погуглили что за файл вы там пытаетесь глянуть:

    .pyi файлы - это стабы (stubs), их назначение и формат описаны в PEP 484. Эти файлы вообще никак не используются интерпретатором, их назначение - предоставлять информацию о типизации кода. К примеру, у тебя есть сторонний модуль без типизации, который не твой, редактировать его ты не можешь, а прописать типы хотелось бы:

    # fizz.py
    
    def greet(who):
        return f'Hello {who}'


    Выход находится с помощью стаба: создаешь файл fizz.pyi, который содержит типизированную сигнатуру greet без имплементации:

    # fizz.pyi
    
    def greet(who: str) -> str:
        ...

    В этих файлах имплементация кода НЕ ПРЕДУСМОТРЕНА.
    Ответ написан
    Комментировать
  • Как реализовать потоки выполнения сопрограм бота?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Во-первых, в принципе не стоит смешивать асинхронность с многопоточностью. Во-вторых, вам этого и не нужно, aiogram для того асинхронным и разработан, чтобы его могли использовать несколько юзеров одновременно. Для этого достаточно код правильно написать.
    Ответ написан
    Комментировать