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

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
📌 Переместить запись из кастомного типа поста в др. рубрику при наступлении условия (wordpress)

Есть кастомный тип постов "Мероприятия". В нем две рубрики: ближайшие и архивные. Понятно, что при создании все события попадают в ближайшие. А как сделать так, чтобы после прошествия дня события, оно автоматически меняло рубрику, а не админ вручную переставлял привязку. С помощью acf7 создано кастомное поле даты. И есть следующий код:

function update_event_taxonomy() {
$today = date('Y-m-d');
$args = array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'event_date',
'value' => $today,
'compare' => '<',
'type' => 'DATE',
),
),
);
$event_posts = get_posts($args);

foreach ($event_posts as $event_post) {
$event_date = get_field('event_date', $event_post->ID);
$event_tax = ($event_date < $today) ? 'archive' : 'upcoming';
wp_set_post_terms($event_post->ID, $event_tax, 'events_category', false);
}
}

function schedule_event_taxonomy_update() {
if (!wp_next_scheduled('update_event_taxonomy')) {
wp_schedule_event(time(), 'hourly', 'update_event_taxonomy');
}
}

add_action('wp', 'schedule_event_taxonomy_update');


Однако при его выполнении, с тех событий, которые подпадают под условие чекбоксы с "ближайшие мероприятия" снимаются и к архивным они не привязываются, чекбокс не проставляется.

Где ошибка или как это правильно/лучше сделать?

PHP задачи с собеседований
👎12👍1
👨🏻‍💻 Реши задачу

Дан массив ["Dima", 11, true, null, [33,44], 1.23]. Нужно вывести информацию о его элементах на экран. Каждый вывод информации об элементе массива должен нумероваться, начиная с единицы. Для решения задачи используйте цикл foreach и функцию var_dump().

PHP задачи с собеседований
👨🏻‍💻 Решение задачи 👆🏻

<?php

//Массив с переменными
$m=["Dima", 11, true, null, [33,44], 1.23];

//Выводим данные о значениях массива
foreach($m as $key=>$val){
//Чтобы нумерация шла с 1
$n=$key+1;
//Выводим информацию об элементе массива
var_dump($val);
echo " - {$n}-й элемент массива<br>";
}

?>


PHP задачи с собеседований
👎15👍3
👨🏻‍💻 Реши задачу

Создайте массив, в который поместите все натуральные числа, не превышающие 15. Отфильтруйте полученный массив при помощи функции array_filter(), удалив из массива все нечетные значения. Выведите оставшиеся элементы массива на экран.

PHP задачи с собеседований
👎5👍2
👨🏻‍💻 Решение задачи 👆🏻

<?php

//Создаем пустой массив. Можно и $m=array();
$m=[];
//Циклом заполняем его
for($n=1;$n<=15;$n++){
//Добавляем текущее число n в массив
$m[]=$n;
}

//Создаем callback-функцию для фильтрации элементов
function my_func($val){
//Если элемент массива нечетное число
if($val%2!=0){
//Возвращаем FALSE, чтобы элемент был удален из массива
return false;
}
//Возвращаем TRUE для четного элемента массива
return true;
}

//Фильтруем элементы массива
$m = array_filter($m,"my_func");
//Выводим четные элементы массива на экран через пробел
foreach($m as $value){
echo $value.' ';
}

?>

PHP задачи с собеседований
👎17👍3
Реальный вопрос от пользователя

Проблема php не работает

Я скачал vs code и установил расширение php

Но когда я запустил оно вывело ошибку:

Error: spawn php ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19) at onErrorNT (node:internal/child_process:478:16) at processTicksAndRejections (node:internal/process/task_queues:83:21) { errno: -4058, code: 'ENOENT', syscall: 'spawn php', path: 'php', spawnargs: [ 'C:\Users\78822\OneDrive\Рабочий стол\.run on bobr\chat\aftorizatua.phtml' ] }

Я смотрел в интернете но там было про другие языки программирования. вот код:

<!DOCTYPE html>
<html>
<head>

<title>авторизация</title>

</head>
<body>
введите логин: <input type="text" name="login" size="20" placeholder="введите логин" onClick="alert('Это сообщение!')"><br>
введите пароль: <input type="text" name="password" size="20" placeholder="введите пароль"><br>
<?php
$login=$_POST["login"];
$password=$_POST["password"];
echo $password;
echo $login;



?>
</body>

</html>


если найдёте как исправить пожалуйста напишите!

PHP задачи с собеседований
👎3🎉1
Доступ для 25 человек в нашу закрытую библиотеку книг: @dblib
👨🏻‍💻 Реши задачу

Вычислите выражение (sin30°+3/4)/|1/5-3/7|+log10100. Для решения используйте математические функции, имеющиеся в PHP.

PHP задачи с собеседований
👍2
👨🏻‍💻 Решение задачи 👆🏻

<?php

//Создаем пустой массив. Можно и $m=array();
$m=[];
//Циклом заполняем его
for($n=1;$n<=15;$n++){
//Добавляем текущее число n в массив
$m[]=$n;
}

//Создаем callback-функцию для фильтрации элементов
function my_func($val){
//Если элемент массива нечетное число
if($val%2!=0){
//Возвращаем FALSE, чтобы элемент был удален из массива
return false;
}
//Возвращаем TRUE для четного элемента массива
return true;
}

//Фильтруем элементы массива
$m = array_filter($m,"my_func");
//Выводим четные элементы массива на экран через пробел
foreach($m as $value){
echo $value.' ';
}

?>

PHP задачи с собеседований
👎3👍1
👨🏻‍💻 Реши задачу

Напишите простейший скрипт счетчика посещений страницы на основе сессий. Для хранения данных счетчика используйте суперглобальный массив $_SESSION.

PHP задачи с собеседований
👨🏻‍💻 Решение задачи 👆🏻

<?php

//Стартуем сессию
session_start();

//Проверяем, запущен ли счетчик
if(isset($_SESSION['times'])){
//увеличиваем его значение на единицу
$_SESSION['times']+=1;
}else{
//иначе присваиваем счетчику начальное значение
$_SESSION['times']=1;
}

//Выводим информацию на экран
echo 'Количество посещений страницы: '.$_SESSION['times'];

?>

PHP задачи с собеседований
👍7
С_М_Абрамов_Методы_метавычислений_и_их_применение.pdf
987.8 KB
📔 Title: Методы метавычислений и их применение

#book #RU

🌐 Lang.: Russian
🧔 Author: С. М. Абрамов
🕘 Year: 2021
📑 Pages: 199
#️⃣ ISBN: 978-5-4499-0079-1

📝 Description: Книга сотрудника Института программных систем РАН,
представляющая собой описание вопросов теории метавычислений и их применения. Метавычисления — раздел теории и практики программирования, посвященный разработке методов анализа и преобразования программ за счет реализации конструктивных метасистем (метапрограмм) над программами.
В книге приводятся основные понятия метавычислений, примеры построения и использования простых метапрограмм. Изложение рассчитано на специалистов в области программирования.
Для научных сотрудников и студентов, изучающих методы автоматического преобразования программ или проводящих исследования в данной области.

@bzd_channel
💻 Weekend Offer для PHP-разработчиков от VK скоро начнется 24-26 марта

Если вы хотите создавать простые и удобные инструменты коммуникации и продукты, которыми ежедневно пользуются миллионы — отправляйте заявку до 23 марта. Вы получите шанс присоединиться к одной из шести команд ВКонтакте: команде потребления контента и рекомендаций, команде контента, команде поиска, команде NFT, команде pазвития суперприложения или команде UX.

Будут рассмотрены также кандидатуры разрабов, которые пишут и на других языках, если они владеют PHP и готовы переходить на него.

➡️ Чтобы отправить отклик, переходите по ссылке.

PHP задачи с собеседований
👨🏻‍💻 Наименование колонок mysql для передачи в переменную

В базе mysql таблицы (categories, products) имеют несколько колонок с одинаковыми названиями id, title. При сложном запросе из обоих таблиц

"select * from products join categories on products.parent=categories.id order by products.parent ASC"

и последующей передаче значений переменной

<td><?=$row['parent']?></td>
<td><?=$row['title']?></td>
<td><?=$row['price']?></td>


есть непонимание, что собственно туда будет передано.

Можно ли конкретизировать значение в квадратных скобках по типу products.title либо использования ковычек, фигурных скобок и т.д?

Или единственное решение это сделать все названия столбцов уникальными?

PHP задачи с собеседований
👍2
🎚 ChatGPT Telegram бот обновился!

Для всех, кто еще не попробовал новую модель GPT4, рекомендуем бота абсолютно бесплатного.

Поможет написать код, диплом, придумает шутку и станет незаменимым помощником в любых задачах, учебы, работы или бизнеса!

Бот: @Chatgpturbobot
👎7👍2
Создайте форму, состав и внешний вид полей которой показан на скриншоте. Скрипт, который будет обрабатывать данные формы на сервере, должен выводить либо сообщения с данными формы либо просить заполнить все поля формы (см. скриншот задачи). Для проверки заполнения полей имени и фамилии используйте условный оператор if и функцию mb_strlen(). Не забывайте, что после скачивания файла содержимое папки нужно разместить в корневой папке test нашего учебного сайта на локальном сервере (иначе скрипт работать не будет).

PHP задачи с собеседований
👨🏻‍💻 Решение задачи 👆🏻


<html>
<head>
<meta charset="utf-8">
<title>Отправка простых текстовых данных</title>
</head>
<body>
<form action="php/example_89.php" method="POST" name="form_89">
Введите имя   <input type="text" name="first_name"><br><br>
Введите фамилию   <input type="text" name="last_name"><br><br>

Укажите ваш возраст:  
<!-- Создаем раскрывающийся список -->
<select name="age">
<option value="до 18 лет">до 18 лет</option>
<option value="19-30 лет">19-30 лет</option>
<option value="30-50 лет">30-50 лет</option>
<option value="50 лет и старше">50 лет и старше</option>
</select> <br><br>

Предпочитаете  
<input type="radio" name="user_choice" value="овощи" checked>овощи  
<input type="radio" name="user_choice" value="фрукты">фрукты<br><br>
<button type="submit" name="submit" value="send">Отправить</button>
</form>
</body>
</html>

PHP задачи с собеседований
🔥4