PHP задачи с собеседований
3.06K subscribers
473 photos
6 videos
11 files
368 links
Задачи, тесты и теоретические вопросы по PHP.

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
Ошибка в получении данных VK Api

Подскажите почему возникает ошибка "Ошибка при получении данных"? Ничего не отдается хотя id и токен ввожу правильно

<?php
$group_id = '******';
$access_token = '********';
$count = 5; // Количество постов

$url = "https://api.vk.com/method/wall.get?owner_id=-$group_id&count=$count&access_token=$access_token&v=5.131";
$response = file_get_contents($url);
$data = json_decode($response, true);

if (isset($data['response']) && isset($data['response']['items'])) {
$posts = $data['response']['items'];

foreach ($posts as $post) {
// Выводим текст поста
echo $post['text'] . '
';

// Дополнительные действия с постом
// Например, вывод изображений, комментариев и т.д.
}
} else {
echo 'Ошибка при получении данных';
}
?>
php
Как установить правильно sqlsrv для php?

0

В общем я пытался установить sqlsrv, с помощью вот этой документации: https://learn.microsoft.com/ru-ru/sql/connect/php/microsoft-php-driver-for-sql-server?view=sql-server-ver16#getting-started, но у меня после вызова phpinfo нет sqlsrv. Что находиться в php(Тип файла INI-DEVELOPMENT):

extension_dir = "C:\php\ext"
extension=php_pdo_sqlsrv_82_ts_x64.dll
extension=php_sqlsrv_82_ts_x64.dll
Моя версия php: PHP Version 8.2.20 Мне это нужно для того, чтобы подключиться ко внешней БД, со своего локального ПК (у меня нет сервера). Но у меня появилась ошибка: Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\Users\ivakov.av\Desktop\Php_Projects\sigur.php:15 И мне надо установить корректно sqlsrv, помогите, пожалуйста!

// Подключаемся к MS SQL
$serverName = ""; // Имя сервера MS SQL
$connectionInfo = array(
"Database" => "", // Имя базы данных
"UID" => "", // Имя пользователя
"PWD" => "" // Пароль
);
$conn = sqlsrv_connect($serverName, $connectionInfo);

if ($conn === false) {
echo "Connection failed: " . print_r(sqlsrv_errors(), true);
exit;
}
PHP parse/syntax errors; Ошибки Unexpected XXX и как решить их

Часто программисты допускают ошибки. Могут возникать ошибки синтаксиса. Например:

PHP Parse error: syntax error, unexpected '{' in index.php on line 20

Неожиданный символ не всегда является настоящим виновником. Но номер строки дает приблизительное представление о том, с чего начать поиск.

Всегда смотрите на контекст кода. Синтаксическая ошибка часто кроется в упомянутых или в предыдущих строках кода. Сравните свой код с примерами синтаксиса из руководства.
cms для блога прошу о помощи

здравствуйте у меня такой вопрос я пока нечего не понимаю в программирования решил разработать cms для блога , в краце подскажите пж как создать связь меж этими таблицами я пользуюсь PhpMyAdmin id | login | password | screen_name

#posts id | alias | author_id | date_posted

#posts_content post_id | language_id | title | post_body

#comments id | post_id | author_id | text | date_posted | parent_comment_id
Каким образом можно автоматизировать HTTP запросы на интернет-ресурс, чтобы они выполнялись круглосуточно?

Задача следующая: есть URL, на который требуется с определенной периодичностью отправлять POST-запросы 24/7. Набросал код на JS и запустил на ноде, все работает. Но свой компьютер постоянно включенным держать не могу. Первая идея - арендовать виртуальный сервер и отправлять запросы с него, но в серверной разработке я полный ноль. Арендованный виртуальный сервер у меня есть, но использую я его только для тестов фронтенда, с серверными скриптами ни разу не работал. Есть ли вообще такая возможность? Подскажите направление куда копать.
Исправление конфигурации OPcache ускорило работу PHP-приложения в 3 раза

Правильное управление OPcache при атомарных деплойментах позволило:

🔸Ускорить приложение в 3 раза.
🔸Снизить нагрузку на CPU в 10 раз.
🔸Сохранить сотни дней на время загрузки для пользователей.

Проблема
При деплойментах с символьными ссылками OPcache продолжает кэшировать файлы предыдущих релизов, заполняя память. Это снижает эффективность кэша.

Решение
Сбрасывать OPcache при каждом деплойменте с помощью cachetool. Это гарантирует, что файлы нового релиза будут кэшироваться заново.

Настройки OPcache
opcache.validate_timestamps=0 — отключить проверку временных меток.
opcache.file_update_protection=0 — мгновенное кэширование новых файлов.
Настроить объем памяти (opcache.memory_consumption) и количество файлов (opcache.max_accelerated_files) для ваших нужд.

Мониторинг
Добавьте ключевые метрики OPcache (свободная память, hit rate) в систему мониторинга. Это поможет выявлять проблемы и оптимизировать работу.

@phpquiz
Настраивать xdebug для первого запуска не нужно вообще! Как в Phpstorm запустить отладку за минуту и без браузера

Многие считают, что добиться успешного запуска отладки xdebug после его установки — тяжело и мучительно. Но на самом деле, сделать первый запуск можно менее чем за минуту, не делая настройки и даже не прикасаясь к конфигурационным файлам .ini (php.ini/xdebug.ini). Как это сделать? Об этом и пойдет речь в этой статье.

@phpquiz
Всех с наступившим новым годом! ❤️🌲

С завтрашнего дня публикации будут выходить как обычно.
🔥 Как избежать проблем с isset() и empty() в PHP?

Сегодня разберём две часто используемые функции в PHP — isset() и empty(), которые могут вести себя не так, как вы ожидаете.

📌 isset()
Функция isset($var) проверяет, была ли переменная установлена и не равна ли она null.
❗️ Пример подвоха:

$var = null;
var_dump(isset($var)); // false

Если переменной вообще нет в коде — тоже будет false.

📌 empty()
Функция empty($var) проверяет, считается ли переменная "пустой".
❗️ Пустыми считаются:
- "" (пустая строка)
- 0 (число)
- "0" (строка с нулём)
- null
- false
- [] (пустой массив)

Пример:

$var = "0";
var_dump(empty($var)); // true, хотя строка не null

⚠️ Ошибка: проверка if (!isset($var) || empty($var)) может привести к неожиданному результату.

🔥 Лучший подход?
Используйте строгие проверки:

if ($var === null) { /* Переменная null */ }
if ($var === &apos;&apos;) { /* Пустая строка */ }
if ($var === 0) { /* Число 0 */ }

Если проверяете массивы, то:

if (count($var) === 0) { /* Массив пуст */ }


Вывод: не злоупотребляйте isset() и empty(), а проверяйте переменные строго!
Какую из следующих функций PHP нужно использовать для получения текущего использования памяти?
Anonymous Poll
8%
get_usage()
4%
get_peak_usage()
82%
memory_get_usage()
12%
memory_get_peak_usage()
Какая из реализаций метода getName() не валидна в классе ChildCls?
Anonymous Poll
12%
protected function getName(){}
22%
function getName(){}
53%
private function getName(){}
29%
public function getName(){}
Какая из реализаций метода getName() не валидна в классе ChildCls?
Какой метод позволяет рассчитать действует ли летнее время в конкретную дату и время?
Anonymous Poll
51%
ISODate()
13%
savingTime()
23%
getOffset()
17%
getTranitions()
Что произойдет при выполнении следующего кода?
Anonymous Poll
8%
Trait Message
68%
Class Message
22%
Ошибка
1%
NULL
Что произойдет при выполнении следующего кода?
Какое значение по умолчанию принимает директива memory_limit в PHP?
Anonymous Poll
31%
64M
54%
128M
14%
256M
2%
512M
Что выведет следующий код?
Anonymous Poll
48%
012
36%
000
5%
123
11%
Ошибку
Что выведет следующий код?
Что будет выведено в результате работы скрипта?

Библиотека задач по PHP
Что будет выведено в результате работы скрипта?
Anonymous Poll
32%
422
35%
4242
37%
Ошибка