Вопросы с собеседований и экзаменов по PHP

Вопросы и задачи с собеседований и экзаменов по PHP

перейти к содержанию задачника

  1. Создать скрипт, который в папке /datafiles найдет все файлы, имена которых состоят из цифр и букв латинского алфавита, имеют расширение ixt и выведет на экран имена этих файлов, упорядоченных по имени.Задание должно быть выполнено с использованием регулярных выражений.
    Весь код должен быть прокомментирован в стиле PHPDocumentor'а.
  2. Чему будет равен $x после выполнения выражения $x = 3 + "15%" + "$25"?
  3. Параллельные вычисления (реальное тестовое задание от www.interesnee.ru)
    Суть задачи: Требуется написать класс (семейство классов), позволяющий реализовывать параллельные вычисления на РНР.Объяснение сути задачи:
    С помощью данного класса или системы классов становится возможным запускать php скрипты или их части в отдельных процессах. Причём взаимодествие между процессами осуществляется также посредством разработанных классов. При этом под процессом понимается каждый запущеный экземпляр php скрипта.Обязательные требования к скрипту:

    • Весь код должен быть написан в OOП стиле, т.е. с использованием классов, интерфейсов, исключений и т.д.
    • Весь код должен быть прокомментирован в стиле PHPDocumentor'a.
    • Скрипт должен функционировать как в Windows так и в Unix системах.
    • Должна быть возможность распараллеливать не только скрипт целиком, но и конкретную функцию или метод класса.
    • Скрипт запускающий параллельные процессы должен иметь возможность общаться с ними в обоих направлениях. А именно: отправлять данные в дочерние процессы в любое время, получать данные с любого из дочерних процессов в любое время, определять статус процесса (работает, не работает). Дочерние скрипты также могут отправлять данные в порождающий процесс в произвольное время.

    Тестовый пример:
    Испытать ваш класс (классы) для распараллеливания предлагается на следующем примере: вычисление числа pi с заданной точностью методом монте карло (см. википедию). Порождающий скрипт запускает несколько дочерних процессов (количество процессов должно быть параметром конфига), каждый из которых начинает вычислять число pi методом монте карло. При этом при запуске параллельного процесса ему должно быть передано количество итераций вычислений, определяемое случайным образом. Порождающий скрипт через неравные промежутки времени (определяемые так же случайно) должен собирать информацию со всех параллельных процессов и выдавать совокупный результат (значение числа pi) в браузер с указанием времени прошедшей с момента запуска главного скрипта.
    Как будет оцениваться ваш тест:

    • Исполняемость и соответствие логики работы скрипта заданию. Если ваш скрипт не реализует распараллеливание процессов, или, в принципе, не может быть исполнен из-за каких-то синтаксических проблем в коде (код либо недописан, либо имеет ошибки синтаксиса), то тестовое задание будет считаться проваленным.
    • Наличие выполненых обязательных требований к скрипту. Если какое-то из обязательных требований не будет выполнено, то это ещё не значит что вы не пройдёте тест. Однако чем больше обязательных требований будет реализовано тем выше вероятность успеха.
  4. $x = 1;
    if ($x == '1') { echo 'a'; }
    if ($x == true) { echo 'b'; }
    if((bool)$x === true){ echo 'e'; }
    if ($x === true) {  echo 'c'; }
    if((int)$x === true){ echo 'd'; }
    Какая строчка выведется при исполнении скрипта?
    Почему исполняется или не исполняется каждое из условий?
  5. Напиши письмо с решением тестового задания на Python + PHP (если не знаешь, можно выучить по докам):
    на вход шаблон аля "ws[10-14].yandex.net", на выход массив ["ws10.yandex.net", ..., "ws14.yandex.net"]И опиши свою стратегию решения насущной задачи: как фильтровать левые заявки на кредиты до получки. Неизвестные моменты ищутся в гугле.И напиши как ты пришел в профессию.
  6. Напишите на PHP функцию разбора SMS с кодом подтверждения от сервиса Яндекс.Деньги. Функция должна принимать текстовую строку и возвращать код подтверждения, сумму и кошелек. Речь идет о реальном сервисе Яндекс.Деньги. Если у вас нет кошелька, то воспользуйтесь эмулятором, генерирующим идентичные сообщения. Учтите, что порядок полей, пунктуация и слова со временем могут быть изменены.
  7. Напишите функцию на JavaScript с использованием jQuery, которая принимает URL, делает GET-запрос на сервер и отображает ответ (или ошибку) в модальном окне Bootstrap. Окно должно открываться при вызове функции без какой-либо задержки. Ответ содержит произвольный HTML-код, не требующий дополнительной обработки.
  8. Что нужно сделать:- Выполнить тестовое задание: “Написать скрипт, который можно запустить из командной строки, принимающий последовательность символов, разделенных запятой, и определяющий является ли введенная последовательность прогрессией. Решение выложить в публичный репозиторий”
  9. Тестовое задание:Сделать форму для ввода числа и отправки ее на сервер, где PHP скрипт проверяет, входит ли данное число в диапазон от 1000 до 2000 и затем возвращает его пользователю в таком виде (число, разбитое на разряды + расшифровка словами):
    "1 853 - две тысячи восемьсот пятьдесят три - входит в диапазон"
    "4 654 187 - четыре миллиона шестьсот пятьдесят четыре тысячи сто восемьдесят семь - не входит в диапазон"
    Все введенные данные сохранять в MySQL в виде отдельных записей. При каждом обновлении формы выводить на странице количество вошедших и не вошедших в диапазон чисел за все время работы формы.

    Результат прислать в виде одного PHP-файла и файла-дампа таблицы, с которой работает скрипт.

    По результатам реализации будет принято решение. Желаем удачи и ждем Вас в нашей команде!
    Спасибо.