Какое из утверждений относительно оператора include верно:
Anonymous Quiz
81%
include используется для включения в программу содержимого другого файла
1%
файл, включаемый с помощью include, должен быть правильным HTML-файлом
18%
файл, включаемый с помощью include, может быть любым файлом
👎27👍5
Имеется объект ($obj) какого-то класса. Требуется получить список всех свойств класса, которому принадлежит объект?
Anonymous Quiz
25%
get_class_var(get_class($obj))
6%
$get_class_vars(get_class->$obj)
70%
$vars = get_class_vars(get_class($obj))
👎13👍8🔥2
Какая функция возвращает метку времени (timestamp)?
Anonymous Quiz
44%
date()
43%
strtotime()
13%
localtime()
👎25👍5🔥2
Реальный вопрос, реального человека. Помогите разобраться
Предположим есть
Но по завершению, он удаляет пробелы в начале строчки, а в конце добавляет строчку.
Вопрос в том, как возможно через регулярное выражение, в цикле перебрать все ссылки и вставить в место них содержимое атрибута href
Предположим есть
$text = '<p> Текст <a href="site" class="js-gps-track js-link" target="_blank"></a></p>В данный момент используется new DOMDocument
<p>
Текст Текст Текст
<a href="site" class="js-gps-track js-link" target="_blank"></a>
Текст
</p>';
Но по завершению, он удаляет пробелы в начале строчки, а в конце добавляет строчку.
Вопрос в том, как возможно через регулярное выражение, в цикле перебрать все ссылки и вставить в место них содержимое атрибута href
$tx = preg_replace_callback('#<a[.]*?</a>#siu', function($m) {
print_r($m);
}, '<p> Текст <a href="site" class="js-gps-track js-link" target="_blank"></a></p>
<p>
Текст 2Текст Текст
<a href="site" class="js-gps-track js-link" target="_blank"></a>
Текст1
</p>');
print_r($tx);
PHP задачи с собеседованийИщем: Backend разработчик (PHP, Symfony)
Формат: удаленка
Мы небольшая продуктовая команда.
Делаем большой проект в сфере логистики
Cтэк:
• #Symfony, #РostgreSQL, #Redis, #Rabitmq, #Elasticsearch;
Вам будет с нами хорошо, если:
• интересно развиваться в небольшой команде и создавать нагрузочные сервисы
• стремитесь улучшать архитектуру и расти до senior (у нас есть задачи на вырост)
• вы любите хороший код, понимаете ценность код ревью
• вам важно было бы соблюдать work/life ballance (мы считаем что без этого не вырасти)
Мы ожидаем:
• middle/senior
• опыт PHP от 2 лет
• опыт Symfony от 2 лет
• знание патернов проектирования и умение их применять
• опыт работы с высокими нагрузками
• опыт работы с интеграциями по API
Пишите в лс @alan_g15
Формат сотрудничества:
Готовы рассмотреть на проект от 2 мес или полноценно в команду
Вам у нас понравится
ЗП готовы обсуждать: 2500-4000$
Формат: удаленка
Мы небольшая продуктовая команда.
Делаем большой проект в сфере логистики
Cтэк:
• #Symfony, #РostgreSQL, #Redis, #Rabitmq, #Elasticsearch;
Вам будет с нами хорошо, если:
• интересно развиваться в небольшой команде и создавать нагрузочные сервисы
• стремитесь улучшать архитектуру и расти до senior (у нас есть задачи на вырост)
• вы любите хороший код, понимаете ценность код ревью
• вам важно было бы соблюдать work/life ballance (мы считаем что без этого не вырасти)
Мы ожидаем:
• middle/senior
• опыт PHP от 2 лет
• опыт Symfony от 2 лет
• знание патернов проектирования и умение их применять
• опыт работы с высокими нагрузками
• опыт работы с интеграциями по API
Пишите в лс @alan_g15
Формат сотрудничества:
Готовы рассмотреть на проект от 2 мес или полноценно в команду
Вам у нас понравится
ЗП готовы обсуждать: 2500-4000$
👍3
👨🏻💻 Вопрос заключается в следующем...
Как реализовать вход по роли к сайту?
Есть роль пользователь и оператор, необходимо чтоб при входе открывалась определенная страница для пользователя и определенная для оператора.
Как можно это сделать?
Как реализовать вход по роли к сайту?
Есть роль пользователь и оператор, необходимо чтоб при входе открывалась определенная страница для пользователя и определенная для оператора.
Как можно это сделать?
$_SESSION['operator'] -> ОператорPHP задачи с собеседований
$_SESSION['polz'] -> Пользователь
if ($_SESSION['operator'])
{
//При выполнении этого условия, должен располагаться, код, контент доступный только "Оператору"
header('Location: ../mainpageoper.php');
}
elseif ($_SESSION['polz'])
{
//При выполнении этого условия, должен располагаться, код, контент доступный только "Пользователю"
header('Location: ../mainpagepolz.php');
}
if( [role] == 1 ) { $_SESSION['polz'] =1; }
if( [role] == 2 ) { $_SESSION['operator'] =1; }
Привет, на связи Podlodka PHP Crew! Большинство русскоязычных конференций и митапов по PHP приостановлены. Но мы продолжаем собирать комьюнити! Во 2-м сезоне поговорим, как внедрять в работу новые инструменты разработки с пользой для бизнеса.
Вместе с Александром Макаровым, Валентином Удальцовым, Александром Кирсановым и другими спикерами разберёмся с основными и продвинутыми сценариями отладки кода, научимся эффективно комбинировать PHP и Docker.
Стартуем уже 27 февраля! В программе:
✴️ Лайвкодинги по поиску ошибок с помощью статического анализа;
✴️ Практика применения Docker;
✴️ Доклады по отладчикам кода и анализу code style;
✴️ Воркшопы по работе с Composer.
Это не всё 😉 В новом сезоне вас ждёт много интересного. За подробностями — на сайт.
Онлайн-конференции Podlodka Crew родились из одноимённого IT подкаста. Каждый сезон длится пять дней — рассматриваем одну тему с разных сторон, чтобы узнать её как можно глубже.
🤑 Успейте забрать свой билет по сниженной цене — ранним пташкам скидки.
Вместе с Александром Макаровым, Валентином Удальцовым, Александром Кирсановым и другими спикерами разберёмся с основными и продвинутыми сценариями отладки кода, научимся эффективно комбинировать PHP и Docker.
Стартуем уже 27 февраля! В программе:
✴️ Лайвкодинги по поиску ошибок с помощью статического анализа;
✴️ Практика применения Docker;
✴️ Доклады по отладчикам кода и анализу code style;
✴️ Воркшопы по работе с Composer.
Это не всё 😉 В новом сезоне вас ждёт много интересного. За подробностями — на сайт.
Онлайн-конференции Podlodka Crew родились из одноимённого IT подкаста. Каждый сезон длится пять дней — рассматриваем одну тему с разных сторон, чтобы узнать её как можно глубже.
🤑 Успейте забрать свой билет по сниженной цене — ранним пташкам скидки.
👍2
👨🏻💻 Вопрос от одного из наших подписчиков
❓Что выведет код?❓
1)
❓Что выведет код?❓
class A {Варианты:
public function __construct(string $a){
$a .= $a;
}
}
class B extends A {
public function __construct(int $a){
$a++;
}
}
$b = new B(1);
var_dump($b);
1)
Fatal error: Declaration of B::__construct(int $a) must be compatible with A::__construct(string $a) in /tmp/preview on line 8
2) object(B)#1 (0) {PHP задачи с собеседований
}
👨🏻💻 Как упростись цепочку условий для фильтра на wordpress?
Есть каталог фильмов на wordpress, где в метатегах постов хранится информация о жанрах, рейтинге и т.п.
Сделана возможность фильтровать по рейтингу (число), жанру (строка) или по умолчанию только по id (число) - это работает, но получается нагромождение из простыни условий.
Как можно упростить цепочку условий, особенно если понадобится добавить новые параметры для фильтра?
Есть каталог фильмов на wordpress, где в метатегах постов хранится информация о жанрах, рейтинге и т.п.
Сделана возможность фильтровать по рейтингу (число), жанру (строка) или по умолчанию только по id (число) - это работает, но получается нагромождение из простыни условий.
Как можно упростить цепочку условий, особенно если понадобится добавить новые параметры для фильтра?
if (isset($rating) || isset($genre)) {PHP задачи с собеседований
if (isset($rating) && isset($genre)) {
$query = new WP_Query(array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'film_rating',
'value' => $rating,
),
array(
'key' => 'film_kind',
'value' => $genre,
),
array(
'key' => 'film_id',
'value' => $films,
'compare' => 'IN'
),
),
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1
));
} else if (isset($rating)) {
$query = new WP_Query(array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'film_rating',
'value' => $rating,
),
array(
'key' => 'film_id',
'value' => $films,
'compare' => 'IN'
),
),
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1
));
} else if (isset($genre)) {
$query = new WP_Query(array(
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'film_kind',
'value' => $genre,
),
array(
'key' => 'film_id',
'value' => $films,
'compare' => 'IN'
),
),
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1
));
}
} else {
$query = new WP_Query(array(
'meta_query' => array(
array(
'key' => 'film_id',
'value' => $films,
'compare' => 'IN'
),
),
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1
));
}
👎7👍3
Forwarded from BZD • Книги для программистов
Великий Китайский Файрвол.pdf
3.5 MB
📔 Title: Великий Китайский Файрвол
#book #programming #RU
🌐 Lang.: Russian
🧔 Author: Джеймс Гриффитс
🕘 Year: 2022
📑 Pages: 430
#️⃣ ISBN: -
📝 Description: Фраза "интернет помнит все" обрела второй смысл — контент стал подконтролен, иллюзия анонимности исчезла. Книга рассказывает о том, как Китай первым в мире научился управлять интернетом и как другие страны перенимали его опыт.
@bzd_channel
#book #programming #RU
🌐 Lang.: Russian
🧔 Author: Джеймс Гриффитс
🕘 Year: 2022
📑 Pages: 430
#️⃣ ISBN: -
📝 Description: Фраза "интернет помнит все" обрела второй смысл — контент стал подконтролен, иллюзия анонимности исчезла. Книга рассказывает о том, как Китай первым в мире научился управлять интернетом и как другие страны перенимали его опыт.
@bzd_channel
Forwarded from BZD • Книги для программистов
Kak_napisat_i_prodat_svoy_PHP_skript.pdf
1.5 MB
📔 Title: Как написать и продать свой PHP скрипт
#book #php #RU
🌐 Lang.: Russian
🧔 Author: Самуэль Акопян
🕘 Year: 2021
📑 Pages: 86
#️⃣ ISBN: -
📝 Description: Вы написали свой первый PHP скрипт и хотите его продать. Эта книга поможет Вам с пошаговой инструкцией в этом начинании, а также подскажет как избежать распространённых ошибок при создании и продаже своего собственного программного обеспечения.
– всё сказанное здесь является результатом личного жизненного опыта автора;
– мнение автора может не совпадать с мнением читателей по многим вещам и это нормально;
– не надо пугаться; – везде по тексту словосочетание “PHP скрипт” можно заменить на “C++ программу”, “мобильную аппликацию” или “мою супер-дупер application”;
– это не монография с замахом на докторскую диссертацию, скорее небольшая инструкция к действию для тех, кто в лодке (ну или собирается в неё запрыгнуть);
@bzd_channel
#book #php #RU
🌐 Lang.: Russian
🧔 Author: Самуэль Акопян
🕘 Year: 2021
📑 Pages: 86
#️⃣ ISBN: -
📝 Description: Вы написали свой первый PHP скрипт и хотите его продать. Эта книга поможет Вам с пошаговой инструкцией в этом начинании, а также подскажет как избежать распространённых ошибок при создании и продаже своего собственного программного обеспечения.
– всё сказанное здесь является результатом личного жизненного опыта автора;
– мнение автора может не совпадать с мнением читателей по многим вещам и это нормально;
– не надо пугаться; – везде по тексту словосочетание “PHP скрипт” можно заменить на “C++ программу”, “мобильную аппликацию” или “мою супер-дупер application”;
– это не монография с замахом на докторскую диссертацию, скорее небольшая инструкция к действию для тех, кто в лодке (ну или собирается в неё запрыгнуть);
@bzd_channel
🔥1
📌 Реальная ситуация
В скрипте делается вывод заголовков.
Дальше идет вывод кэша из файла.
Ответ сервера:
PHP задачи с собеседований
В скрипте делается вывод заголовков.
$modified_date = strtotime('2023-02-09 17:25:05');Если после этого идет сразу exit то заголовок выдается.
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $modified_date).' GMT');
Дальше идет вывод кэша из файла.
$cacheFile = '/cache.txt';сразу пропадает строка Last-Modified.
$html = file_get_contents($cacheFile);
echo $html;
exit;
Ответ сервера:
HTTP/1.1 200 OKНе понятно как file_get_contents может отменять заголовок? headers_list() заголовок показывает.
Server: nginx/1.14.1
Date: Tue, 21 Feb 2023 07:44:31 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/7.2.24
Strict-Transport-Security: max-age=31536000;
Content-Encoding: gzip
PHP задачи с собеседований
👍1
❓Что можно сократить в данном php коде?
<?php
function getClosest($search, $array)
{
$num = null;
foreach ($array as $item) {
if ($item['chance'] < $search) {
continue;
}
if ($num === null || $item['chance'] < $num['chance']) {
$num = $item;
}
}
return $num;
}
$case_cost = 100;
$skins = [
$skin = ['cost' => 10000],
$skin = ['cost' => 0.01],
$skin = ['cost' => 5256],
$skin = ['cost' => 425.2],
$skin = ['cost' => 92.4],
$skin = ['cost' => 3124],
$skin = ['cost' => 0.32],
$skin = ['cost' => 213],
];
$array_chance = [];
$array_sum = 0;
foreach ($skins as $item) {
if ($case_cost >= $item['cost']) {
$result = $case_cost / $item['cost'];
} else {
$result = $case_cost * $item['cost'] / 100;
}
$result = round($result);
$array_sum += $result;
array_push($array_chance, $result);
}
$rand_num = rand(0, $array_sum);
$i = 0;
$accum = 0;
foreach ($array_chance as $skin) {
$skins[$i]['chance'] = $skin;
$i++;
}
$accum = 0;
foreach ($skins as &$skin) {
$accum = $skin['chance'] += $accum;
}
print_r($skins);
$rand_element = getClosest($rand_num, $skins);
echo '<br>' . $rand_num . '<br>';
print_r($rand_element);
PHP задачи с собеседований
<?php
function getClosest($search, $array)
{
$num = null;
foreach ($array as $item) {
if ($item['chance'] < $search) {
continue;
}
if ($num === null || $item['chance'] < $num['chance']) {
$num = $item;
}
}
return $num;
}
$case_cost = 100;
$skins = [
$skin = ['cost' => 10000],
$skin = ['cost' => 0.01],
$skin = ['cost' => 5256],
$skin = ['cost' => 425.2],
$skin = ['cost' => 92.4],
$skin = ['cost' => 3124],
$skin = ['cost' => 0.32],
$skin = ['cost' => 213],
];
$array_chance = [];
$array_sum = 0;
foreach ($skins as $item) {
if ($case_cost >= $item['cost']) {
$result = $case_cost / $item['cost'];
} else {
$result = $case_cost * $item['cost'] / 100;
}
$result = round($result);
$array_sum += $result;
array_push($array_chance, $result);
}
$rand_num = rand(0, $array_sum);
$i = 0;
$accum = 0;
foreach ($array_chance as $skin) {
$skins[$i]['chance'] = $skin;
$i++;
}
$accum = 0;
foreach ($skins as &$skin) {
$accum = $skin['chance'] += $accum;
}
print_r($skins);
$rand_element = getClosest($rand_num, $skins);
echo '<br>' . $rand_num . '<br>';
print_r($rand_element);
PHP задачи с собеседований
👍5
📌 Переместить запись из кастомного типа поста в др. рубрику при наступлении условия (wordpress)
Есть кастомный тип постов "Мероприятия". В нем две рубрики: ближайшие и архивные. Понятно, что при создании все события попадают в ближайшие. А как сделать так, чтобы после прошествия дня события, оно автоматически меняло рубрику, а не админ вручную переставлял привязку. С помощью acf7 создано кастомное поле даты. И есть следующий код:
Где ошибка или как это правильно/лучше сделать?
PHP задачи с собеседований
Есть кастомный тип постов "Мероприятия". В нем две рубрики: ближайшие и архивные. Понятно, что при создании все события попадают в ближайшие. А как сделать так, чтобы после прошествия дня события, оно автоматически меняло рубрику, а не админ вручную переставлял привязку. С помощью 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 задачи с собеседований
Дан массив ["Dima", 11, true, null, [33,44], 1.23]. Нужно вывести информацию о его элементах на экран. Каждый вывод информации об элементе массива должен нумероваться, начиная с единицы. Для решения задачи используйте цикл foreach и функцию var_dump().
PHP задачи с собеседований
👨🏻💻 Решение задачи 👆🏻
<?phpPHP задачи с собеседований
//Массив с переменными
$m=["Dima", 11, true, null, [33,44], 1.23];
//Выводим данные о значениях массива
foreach($m as $key=>$val){
//Чтобы нумерация шла с 1
$n=$key+1;
//Выводим информацию об элементе массива
var_dump($val);
echo " - {$n}-й элемент массива<br>";
}
?>
👎15👍3
👨🏻💻 Реши задачу
Создайте массив, в который поместите все натуральные числа, не превышающие 15. Отфильтруйте полученный массив при помощи функции array_filter(), удалив из массива все нечетные значения. Выведите оставшиеся элементы массива на экран.
PHP задачи с собеседований
Создайте массив, в который поместите все натуральные числа, не превышающие 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 задачи с собеседований
<?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