PHP задачи с собеседований
Ir al canal en Telegram
Задачи, тесты и теоретические вопросы по PHP. Прислать задачу/вопрос в дар: @cyberJohnny Сотрудничество: @cyberJohnny
Mostrar más2 906
Suscriptores
-124 horas
Sin datos7 días
-930 días
Archivo de publicaciones
🔥Научитесь создавать надежные и читаемые программы с SOLID
🔊Встречаемся 25 сентября в 20:00 мск на бесплатном открытом уроке «Особенности обработки исключений с точки зрения SOLID принципов».
Ключевыми темами этого урока будут:
1. Какие исключения и где их стоит обрабатывать:
— Основные типы исключений и их назначение;
— Места, где следует обрабатывать исключения (локальная или глобальная обработка); - Пользоваться или продолжать выброс исключений.
2. Стратегии обработки исключений:
— Принцип единственной ответственности (Single Responsibility Principle) и обработка исключений;
— Принцип открытости/закрытости (Open/Closed Principle) и обработка исключений;
— Принцип подстановки Барбары Лисков (Liskov Substitution Principle) и обработка исключений;
— Принцип разделения интерфейса (Interface Segregation Principle) и границы обработки исключений;
— Принцип инверсии зависимости (Dependency Inversion Principle) и управление исключениями.
💡Участники урока получат практические примеры и сценарии, чтобы разобраться в лучших практиках обработки исключений с учетом SOLID принципов. Мы также рассмотрим ситуацию, когда обработку исключений не следует производить, а вместо этого стоит использовать альтернативные стратегии, такие как возвращать специальные коды ошибок или использовать паттерн Either.
➡️ Пройдите вступительное тестирование, мы запишем вас на урок и напомним заранее
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Как сделать тестирование более эффективным? Расскажем 21 сентября в 19:00 мск на открытом уроке «Оценка эффективности тестовой стратегии с помощью тестового покрытия» в рамках курса «QA Lead». https://otus.pw/qz97/
Часто возникают вопросы:
— Все ли мы тестируем?
— Насколько эффективен выбранный нами набор тестов?
— Нет ли избыточного или недостаточного количества тестов и так далее?
Чтобы получить ответы на выше обозначенные вопросы, нужно использовать показатели code coverage и test coverage. Их и разберем на занятии.
Также вы сможете задать преподавателю любые вопросы в режиме реального времени и понять, насколько вам подходит формат обучения.
Регистрируйтесь бесплатно прямо сейчас, чтобы не пропустить мероприятие! https://otus.pw/qz97/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
✔️ Ты PHP-разработчик? - Проверь себя, пройди тест по Laravel! 👩💻
Освой полный спектр возможностей Laravel.
Пройди тест из 20 вопросов и проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Framework Laravel" от OTUS по специальной цене.
🎫Возможна оплата курса в рассрочку
👉 ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru👨🏻💻 Оптимизация вставки или обновления множества значений в базу данных
Каждый раз после определенных манипуляций получается некий массив с уникальными словами:
$words = array( "cat", "dog", "mouse", "home", ...); Нужно каждое слово сохранить в таблице, если оно там не встречается и задать ему счетчик = 1. Если слово встречается, то увеличить счетчик данного слова на 1. С этим в принципе проблем нет, вопрос в другом. Иногда приходит массив на 1000 слов, и в целом может прийти и неограниченно больше. Сейчас проверка и запись в базу происходит тупо в цикле по одному. Вопрос такой: можно ли как-то это оптимизировать, например, как-то обновлять таблицу одним запросом. Если да, то не будет ли какое ограничение по длине запроса. В целом, как бы вы сделали, посоветуйте варианты. PHP задачи с собеседований
👨🏻💻 PHP 8.1, ошибка при установке sqlsrv и pdo_sqlsrv
Имеется сервер Debain 11 на котором установлен SQL SERVER и PHP 8.1 Необходимо установить необходимые расширения (sqlsrv и pdo_sqlsrv), при попытке установить одно из них я получаю ошибку:
/usr/bin/sed: can't read /usr/lib/x86_64-linux-gnu/libltdl.la: No such file or directory libtool: error: '/usr/lib/x86_64-linux-gnu/libltdl.la' is not a valid libtool archive make: *** [Makefile:254: pdo_sqlsrv.la] Error 1 ERROR: `make' failedПробовал удалять и устанавливать libtool, пробовал менять версию PHP с 7.4 и до более новых версий, пробовал удалять кэш и временные пакеты. Данная ошибка появляться в любом случаи, чтобы я не пробовал делать. ChatGPT не помогает :) Какие могут быть возможные решения проблемы? PS. Так же при попытке вручную скомпилировать расширение получаю ошибку:
libtool: warning: library '/usr/lib/x86_64-linux-gnu/libodbc.la' was moved. libtool: warning: library '/usr/lib/x86_64-linux-gnu/libodbcinst.la' was moved. libtool: link: cc -shared -fPIC -DPIC .libs/conn.o .libs/util.o .libs/init.o .libs/stmt.o shared/.libs/core_conn.o shared/.libs/core_results.o shared/.libs/core_stream.o shared/.libs/core_init.o shared/.libs/core_stmt.o shared/.libs/core_util.o shared/.libs/FormattedPrint.o shared/.libs/localizationimpl.o shared/.libs/StringFunctions.o -lstdc++ /usr/lib/x86_64-linux-gnu/libodbc.so /usr/lib/x86_64-linux-gnu/libodbcinst.so -g -O2 -Wl,-z -Wl,now -pthread -Wl,-soname -Wl,sqlsrv.so -o .libs/sqlsrv.so libtool: error: '/usr/lib/x86_64-linux-gnu/libltdl.la' is not a valid libtool archive make: *** [Makefile:251: sqlsrv.la] Error 1PHP задачи с собеседований
👨🏻💻Вопрос от англоязычного пользователя
How to append an attribute into Eloquent collection in Laravel
I'm writing a pagination on laravel. I know that laravel has it's own pagination but I want just to try make my own. So I used a generator to get records from db but i have a problem - I need somehow mark last records to understend when it'll be the last page in pagination. I tried to add a field to my records via 'append' in Laravel but it doesn't works
Here is the code from Model
protected function is_last_record(): \Attribute
{
return new \Attribute(
fn () => 'yes',
);
}
public function pagination($pageNumber=1, $numOfRecords=8)
{
$numberOfRecords = Anime::select('*')->count();
$offset = ($pageNumber - 1) * $numOfRecords;
$data = Anime::select('title', 'poster')->limit($numOfRecords)->offset($offset)->get();
$numberOfRecords -= $data->count();
if($data->count() > 0){
if($numberOfRecords > 0){
yield $data;
}
else if($numberOfRecords == 0){
$data->appends(['is_last_record'])->toArray();
yield $data;
}
}
}
Controller code
public function List(){
$data = $this->anime->pagination();
$list = [];
foreach($data as $item){
array_push($list, $item);
}
return view('/list', ['list' => $list]);
}
Can somebody help me to fix it so it can return also a field "is_last_record" if it's a last page and i could parse it in view ?
PHP задачи с собеседований
⬆️ На курсе «Профессия Архитектор ПО» вы вырастете как разработчик и повысите свой доход. Разберёте реальные кейсы от ведущих разработчиков «Альфа-Банка» и сможете проектировать масштабируемые и отказоустойчивые приложения.
За 4 месяца вы научитесь:
✅ применять архитектурные стили и паттерны проектирования — API Gateway, CQRS и «Сага»;
✅ выявлять и проверять нефункциональные требования и характеристики систем;
✅ строить распределённые системы на основе микросервисов и создавать cloud-native-приложения;
✅ принимать архитектурные решения исходя из контекста;
✅ учитывать вопросы кибербезопасности при проектировании.
Навыки отточите на реальных задачах, а в конце курса презентуете итоговый проект.
Спешите приобрести курс со скидкой!
Подробнее по ссылке https://goo.su/8pDyzNi
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
⬆️ На курсе «Профессия Архитектор ПО» вы вырастете как разработчик и повысите свой доход. Разберёте реальные кейсы от ведущих разработчиков «Альфа-Банка» и сможете проектировать масштабируемые и отказоустойчивые приложения.
За 4 месяца вы научитесь:
✅ применять архитектурные стили и паттерны проектирования — API Gateway, CQRS и «Сага»;
✅ выявлять и проверять нефункциональные требования и характеристики систем;
✅ строить распределённые системы на основе микросервисов и создавать cloud-native-приложения;
✅ принимать архитектурные решения исходя из контекста;
✅ учитывать вопросы кибербезопасности при проектировании.
Навыки отточите на реальных задачах, а в конце курса презентуете итоговый проект.
Спешите приобрести курс со скидкой!
Подробнее по ссылке https://goo.su/8pDyzNi
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
👨🏻💻Вопрос от пользователя
Wordpress сайт в PHP скрипте $_SERVER['HTTP_USER_AGENT'] выдаёт разные значения хотя захожу с одного и того же устройства и браузера
Доброго времени суток!
сайт выложил уже на хостинг. с помощью $_SERVER['HTTP_USER_AGENT'] принимается решение какую версию сайта показывать мобильную или десктопную.
сначала вроде работает нормально, потом ни с того ни с сего на мобильном начинает показывать десктоп версию или наоборот на десктоп мобильную, хотя открывают его с одних и тех же устройств и браузеров.
вот код
$mobile =false;
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$bberry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$webos = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
if ($android || $bberry || $iphone || $ipod || $webos== true)
{
$mobile =true;
}
echo $_SERVER['HTTP_USER_AGENT'];
if($mobile)
{
require "enMob.php";
}
else
{
require "en.php";
}
PHP задачи с собеседованийКак использовать мощность Linux на максимум?
Бесполезно ставить устаревшие утилиты, бездумно чистить процессы, и читать бредовые статьи по взлому wi-fi через Aircrack.
Подумайте сами, спектр работы с Linux безграничен, вы можете - поднять свой впн за пару команд, собрать информацию о любом человеке c новыми OSINT инструментами, разогнать видеокарту в Linux с помощью опций ядра для значительного повышения FPS в играх и многое другое.
Об этом можно узнать здесь. Вообще канал «Linux Academy» единственное место в телеграме, где вы пройдете путь от -"гугл, как выйти из Vim", до профессионала по работе с Linux и хакингу.
Подписывайтесь, такие знания в 2023-м году на вес золота: Linux Academy
Как использовать мощность Linux на максимум?
Бесполезно ставить устаревшие утилиты, бездумно чистить процессы, и читать бредовые статьи по взлому wi-fi через Aircrack.
Подумайте сами, спектр работы с Linux безграничен, вы можете - поднять свой впн за пару команд, собрать информацию о любом человеке c новыми OSINT инструментами, разогнать видеокарту в Linux с помощью опций ядра для значительного повышения FPS в играх и многое другое.
Об этом можно узнать здесь. Вообще канал «Linux Academy» единственное место в телеграме, где вы пройдете путь от -"гугл, как выйти из Vim", до профессионала по работе с Linux и хакингу.
Подписывайтесь, такие знания в 2023-м году на вес золота: Linux Academy
🦾 Стань крутым Android-разработчиком вместе с OTUS
У нас есть отличный курс с крутыми условиями и рассрочкой, но сначала предлагаем тест-драйв – бесплатный открытый урок от преподавателя этой программы!
🎙 14 сентября в 20:00 мск встречаемся на открытом уроке «Создание своей MVI-архитектуры приложения для Android и миграция на нее с MVVM» в рамках курса «Android Developer. Professional»
Что будем делать на занятии:
- Напишем свой простой MVI
- Мигрируем приложение с MVVM на MVI
- Напишем unit-тесты на получившуюся логику
🟠Это не записанный вебинар, а живой эфир, где вы сможете задать преподавателю любые вопросы в режиме реального времени!
👉 Регистрируйтесь бесплатно прямо сейчас, чтобы ничего не пропустить!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru erid: 2Vtzqv9oMTE
✔️ Ты PHP-разработчик? - Проверь себя, пройди тест по Laravel! 👩💻
Вырвись из однотипных задач — освой полный спектр возможностей Laravel.
Пройди тест из 20 вопросов и проверь свои знания. Сможешь сдать — пройдёшь на продвинутый курс "Framework Laravel" от OTUS по специальной цене.
🎫Возможна оплата курса в рассрочку
👉 ПРОЙТИ ТЕСТ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru erid: 2Vtzqw9nafA
👨🏻💻Вопрос от пользователя
Пытаюсь вытянуть информацию о видео с MySQL через апи в реакт
У меня есть функция в ларе которой можно загрузить видео в бд, но когда хочу вывести в реакт то не получается воспроизвести видео, не могу понять почему, ошибок в консоли не выдаёт код с лары :
public function store(Request $request){
$data = $request->validate([
'name' => 'required',
'description' => 'required',
'category_id' => 'required',
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
'video' => 'required|file|mimes:mp4,mov,avi|max:100000'
]);
if ($request->hasFile('image')){
$image = $request->file('image');
$imageName = time() . '_' . $image->getClientOriginalName();
$data['image'] = $imageName;
$request->image->move(public_path('storage/images'), $imageName);
}
if ($request->hasFile('video')) {
$video = $request->file('video');
$videoName = time() . '_' . $video->getClientOriginalName();
$data['video'] = $videoName;
$request->video->move(public_path('storage/videos'), $videoName);
}
Post::create($data);
$posts = Post::all();
return view('Post.listPost', ['posts'=>$posts]);
}
код с реакта :
function PostDetail() {
const { id } = useParams();
const [post, setPost] = useState({});
useEffect(() => {
fetch(`http://127.0.0.1:8000/api/post?id=${id}`)
.then(res => res.json())
.then(data => setPost(data))
.catch(error => console.error(error));
}, [id]);
return (
<div className="post_detail">
<div className="post_details_watch">
<video className="post_detail_video" controls>
<source src={post.video} type="video/mp4" />
</video>
<img src={post.image} alt=""/>
<p>{post.name}</p>
<p>Plot Summary :</p>
<p>Содержание: {post.description}</p>
</div>
</div>
);
}
PHP задачи с собеседований👨🏻💻Вопрос от пользователя
Валидация формы обратной связи php
У меня есть простенький php скрипт который отправляет сообщение в чат телеграмм от имени бота. На сайте есть форма обратной связи к которой подключен данный php обработчик.
Мне нужно сделать так что-бы нельзя было отправить пустые поля! Как мне это сделать?
Сам код:
sendmess.php
<?php
/* https://api.telegram.org/botXXXXXXXXXXXXXXXXXXXXXXX/getUpdates,
где, XXXXXXXXXXXXXXXXXXXXXXX - токен вашего бота, полученный ранее */
$name = $_POST['user_name'];
$email = $_POST['user_email'];
$phone = $_POST['user_phone'];
$token = "TOKEN_BOT";
$chat_id = "CHAT_ID";
$arr = array(
'ФИО:' => $name,
'Email:' => $email,
'Телефон:' => $phone,
);
foreach($arr as $key => $value) {
$txt .= "<b>" . urlencode($key) . " </b>" . urlencode($value) ."%0A";
};
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
if ($sendToTelegram) {
header('Location: index.php');
} else {
echo "Error";
}
?>
index.php
<!-- Форма обратной связи -->
<form action="sendmess.php" method="POST">
<!-- Каждый input для выравнивания вкладываем в блок input-box -->
<div class="input-box">
<input type="text" name="user_name" placeholder="ФИО" />
</div>
<div class="input-box">
<input type="email" name="user_email" placeholder="Email" />
</div>
<div class="input-box">
<input type="phone" name="user_phone" placeholder="Телефон" />
</div>
<div class="button">
<input class="button" type="submit" value="Отправить" />
</div>
</form>
</div>
</div>
PHP задачи с собеседований💻Подборка полезных каналов для тех, кому интересен хакинг, Linux и анализ с данными.
▪Хакер - сложный материал, простыми словами, лучший способ изучить хакинг.
▪Анализ данных - гайды сбора и анализа данных.
▪Linux - секреты ос, о которые выведут вас на новый уровень.
▪Kali linux - канал-проводник в хакинг, где на пальцах обучают кибербезопасности на практике.
▪Linux Books - лучшие свежие книги - бесплатно.
👨🏻💻Задание для вас
Как занести выбранные элементы из json в массив PHP
Подскажите как занести из json файла в массив double все элементы link через for()?
[{"_id":"2","link":"t.me\/vamix"},{"_id":"1","link":"t.me\/texas"}]
$double = [];
$q=mysql_query("SELECT * FROM black ORDER BY _id DESC");
while($e=mysql_fetch_assoc($q)) $output[] = $e;
$string = json_encode($output);
print($string);
🔥 Работаете сетевым инженером или администратором и ищете возможности для роста?
Научитесь проектировать архитектуру underlay и overlay сетей с помощью онлайн-курса «Дизайн сетей ЦОД» в OTUS.
✔️ Вас ждут 3 месяца интерактивных вебинаров с инструкторами Cisco, практика и серьезная проектная работа для портфолио — сетевая фабрика на основе VxLAN EVPN.
После обучения вы сможете проектировать сети и сетевые фабрики на любом вендоре. Набор заканчивается!
🚀 Группа стартовала уже 28 августа!
🟠Если вы пропустите первые вебинары – это не страшно, они останутся в записи в личном кабинете.
Но сильно затягивать не стоит – оставляйте заявку и присоединяйтесь, пока не началось самое интересное и сложное!
➡️ Пройдите вступительный тест, чтобы занять место в группе с бонусной скидкой!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
