👨🏻💻 Как отправить headers на localhost Laravel?
В доках нужно ставить полный путь на сайт но так же не найдет:
В доках нужно ставить полный путь на сайт но так же не найдет:
$response = Http::withToken($token)->post('http://localhost/api/auth/logout');а так он не знает сайт
$response = Http::withToken($token)->post('api/auth/logout');PHP задачи с собеседований
👎1
👨🏻💻 Как выбрать элемент с указанным шансом?
Есть данный массив:
Мне в голову приходить только домножение на N и выбор с помощью rand(1, 100 * N), но не думаю что данный способ является корректным.
PHP задачи с собеседований
Есть данный массив:
Array ( [cost] => 1475.00 [case] => sharp [chance] => 0.47864506627393 )Сумма элемента chance равна 100%, то есть в chance указан шанс выпадения в %, какой наиболее лучший способ будет чтобы выбирать элемент из массива с указанным шансом?
Array ( [cost] => 1399.00 [case] => sharp [chance] => 0.51546391752577 )
Array ( [cost] => 1600.00 [case] => sharp [chance] => 0.44182621502209 )
Array ( [cost] => 1478.00 [case] => sharp [chance] => 0.47864506627393 )
Array ( [cost] => 1050.00 [case] => sharp [chance] => 0.68114874815906 )
Array ( [cost] => 309.00 [case] => sharp [chance] => 2.319587628866 )
Array ( [cost] => 279.00 [case] => sharp [chance] => 2.5773195876289 )
Array ( [cost] => 93.00 [case] => sharp [chance] => 7.7135493372607 )
Array ( [cost] => 109.00 [case] => sharp [chance] => 6.5905743740795 )
Array ( [cost] => 130.00 [case] => sharp [chance] => 5.5228276877761 )
Array ( [cost] => 23.00 [case] => sharp [chance] => 10.861561119293 )
Array ( [cost] => 29.00 [case] => sharp [chance] => 13.696612665685 )
Array ( [cost] => 31.00 [case] => sharp [chance] => 14.635493372607 )
Array ( [cost] => 109.00 [case] => sharp [chance] => 6.5905743740795 )
Array ( [cost] => 2.42 [case] => sharp [chance] => 1.1413843888071 )
Array ( [cost] => 5.39 [case] => sharp [chance] => 2.540500736377 )
Array ( [cost] => 24.00 [case] => sharp [chance] => 11.321796759941 )
Array ( [cost] => 10.00 [case] => sharp [chance] => 4.7128129602356 )
Array ( [cost] => 13.00 [case] => sharp [chance] => 6.1303387334315 )
Array ( [cost] => 0.60 [case] => sharp [chance] => 0.27614138438881 )
Array ( [cost] => 0.60 [case] => sharp [chance] => 0.27614138438881 )
Array ( [cost] => 0.60 [case] => sharp [chance] => 0.27614138438881 )
Array ( [cost] => 0.12 [case] => sharp [chance] => 0.055228276877761 )
Array ( [cost] => 0.12 [case] => sharp [chance] => 0.055228276877761 )
Array ( [cost] => 0.12 [case] => sharp [chance] => 0.055228276877761 )
Array ( [cost] => 0.12 [case] => sharp [chance] => 0.055228276877761 )
Мне в голову приходить только домножение на N и выбор с помощью rand(1, 100 * N), но не думаю что данный способ является корректным.
PHP задачи с собеседований
👍5
👨🏻💻 Ошибка bcdiv(): Argument #1 ($num1) is not well-formed
Помогите пожалуйста пофиксить данную ошибку
Данные приходят с внешнего api в float формате, цель сделать из float строку и обрезать в конце нули (чтобы также прогонять подобные строки '0.5450000' => '0.545')
Помогите пожалуйста пофиксить данную ошибку
Данные приходят с внешнего api в float формате, цель сделать из float строку и обрезать в конце нули (чтобы также прогонять подобные строки '0.5450000' => '0.545')
<?php
function to_string($value, $fix = 12) {
$string = bcdiv($value, 1, $fix);
return $string = $fix > 0 ? rtrim(rtrim($string, '0'), '.') : $string;
}
$result = to_string(1.5);
echo gettype($result) .' '. $result; // string 1.5
$result = to_string(1.0E-6); // Ошибка bcdiv(): Argument #1 ($num1) is not well-formed
echo gettype($result) .' '. $result;
PHP задачи с собеседований👨🏻💻 Реальная проблема реального человека
Как здесь правильно исползовать language?
Я новичок здесь и не знаю, почему это показывает, так ☺️
Устарело: создание динамического свойства Language::$languages устарело в C:\xampp\htdocs\test\class.Language.php в строке 8
Как здесь правильно исползовать language?
Я новичок здесь и не знаю, почему это показывает, так ☺️
Устарело: создание динамического свойства Language::$languages устарело в C:\xampp\htdocs\test\class.Language.php в строке 8
function detectLanguage()
{
global $DEFAULT_LANGUAGE;
if ($_SERVER['HTTP_ACCEPT_LANGUAGE']) {
$this->languages = $_SERVER['HTTP_ACCEPT_LANGUAGE']; /*Здесь ошибка*/
$this->language = substr($this->languages, 0, 2); /* И Здесь ошибка*/
return $this->language;
} else if ($_SERVER['HTTP_USER_AGENT']) {
$this->user_agent = explode(";", $_SERVER['HTTP_USER_AGENT']);
for ($i = 0; $i < sizeof($this->user_agent); $i++) {
$this->languages = explode("-", $this->user_agent[$i]);
if (sizeof($this->languages) == 2) {
if (strlen(trim($this->languages[0])) == 2) {
$size = sizeof($this->language);
$this->language[$size] = trim($this->languages[0]);
}
}
}
return $this->language[0];
} else {
$this->language = $DEFAULT_LANGUAGE;
return $this->language;
}
}
PHP задачи с собеседований👍1
👨🏻💻 Не получается создать проект на PHP Laravel
При создании проекта на Laravel возникает ошибка:
PHP задачи с собеседований
При создании проекта на Laravel возникает ошибка:
Problem 1 - laravel/framework[v10.10.0, ..., v10.12.0] require league/flysystem ^3.8.0 -> satisfiable by league/flysystem[3.8.0, ..., 3.15.1]. - league/flysystem[3.3.0, ..., 3.14.0] require league/mime-type-detection ^1.0.0 -> satisfiable by league/mime-type-detection[1.0.0, ..., 1.11.0]. - league/flysystem[3.15.0, ..., 3.15.1] require league/flysystem-local ^3.0.0 -> satisfiable by league/flysystem-local[3.15.0]. - league/mime-type-detection[1.0.0, ..., 1.3.0] require php ^7.2 -> your php version (8.2.6) does not satisfy that requirement. - league/mime-type-detection[1.4.0, ..., 1.11.0] require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension. - league/flysystem-local 3.15.0 require ext-fileinfo * -> it is missing from your system. Install or enable PHP's fileinfo extension. - Root composer.json requires laravel/framework ^10.10 -> satisfiable by laravel/framework[v10.10.0, v10.10.1, v10.11.0, v10.12.0]. To enable extensions, verify that they are enabled in your .ini files: - C:\Program Files\PHP\php.ini You can also run php --ini in a terminal to see which files are used by PHP in CLI mode. Alternatively, you can run Composer with --ignore-platform-req=ext-fileinfo to temporarily ignore these required extensions.Версия PHP: 8.2.6
PHP задачи с собеседований
👎1
👨🏻💻 Почему The command \"passport:install\" does not exist.?
при запуске приложения
а когда хочу чтобы эта команда сработала так то выдает ошибку
при запуске приложения
php artisan passport:installв консоли все выполняется
а когда хочу чтобы эта команда сработала так то выдает ошибку
Route::post('/cli-passport-install', function () {
Illuminate\Support\Facades\Artisan::call('passport:install');
return new Illuminate\Http\JsonResponse([], 204);
});
PHP задачи с собеседований👍2
👨🏻💻 Как исключить добавление ключа внутри объявления массива при определенных условий?
Можно ли как то исключить добавление ключа внутри объявления массива при определенных условий?
Можно ли как то исключить добавление ключа внутри объявления массива при определенных условий?
<?phpНиже пример, пробовал делать так, но там очень много подобных значений, как итог вариант не подходит:
$array = [];
foreach ($orders as $order) {
$array[] = [
'account-id' => $order['account_id'],
'price' => $order['price'], // если $order['price'] === '0' то исключить этот ключ
'amount' => $order['amount'],
// Ключей и значений много и много подобных проверок
];
}
$request = $this->request($this->api_host .'v1/order', 'POST', $array);
<?php
$array = [];
foreach ($orders as $order) {
if ($order['price'] === '0') {
$array[] = [
'account-id' => $order['account_id'],
'amount' => $order['amount'],
];
} else {
$array[] = [
'account-id' => $order['account_id'],
'price' => $order['price']
'amount' => $order['amount'],
];
}
}
$request = $this->request($this->api_host .'v1/order', 'POST', $array);
PHP задачи с собеседований👨🏻💻 Как вывести остальные элементы из таблицы в БД MySql?
Проблема лишь в том, что выводит последний элемент из таблицы "ingredient", а первый игнорирует, не могу понять как отобразить его на экране в <Input>.
У меня есть таблица, которая связана с другой, и когда я вывожу элементы с индексом 1 (у меня две записи с индексом 1, и одна запись с индексом 2), он выбирает последний с индексом 1 и выводит его.
Как вывести первый элемент? Я пытался сделать это методом explode, но так получается, что у обоих записей меняется ключ на 0.
Проблема лишь в том, что выводит последний элемент из таблицы "ingredient", а первый игнорирует, не могу понять как отобразить его на экране в <Input>.
У меня есть таблица, которая связана с другой, и когда я вывожу элементы с индексом 1 (у меня две записи с индексом 1, и одна запись с индексом 2), он выбирает последний с индексом 1 и выводит его.
Как вывести первый элемент? Я пытался сделать это методом explode, но так получается, что у обоих записей меняется ключ на 0.
<?php $sql = "SELECT * FROM `Ingredient` WHERE id_ingr = '1'";PHP задачи с собеседований
if($result = $conn2->query($sql)){
foreach($result as $row ){
$ingredient = $row['ingredient'];
}
}
?>
<input type="checkbox" class="checkbox" name ="checkboxx[]" value="<?php $ingredient?>" id="checkbox1" checked/><label class="label" for="checkbox1"><?php echo $ingredient ;?></label>
PHP Academy — в телеграм!
PHP - один из самых популярных языков веба, он применяется в более чем 40% всех сайтов мира и достаточно прост в освоении.
Вывести свои навыки веб-разработки на новый уровень на практике, помогут авторы канала, которые пишут код, изучают библиотеки за вас и дают резюме, собирают бесплатные книги и курсы по PHP и делятся с подписчиками.
Стоит подписаться: @phpshka
PHP - один из самых популярных языков веба, он применяется в более чем 40% всех сайтов мира и достаточно прост в освоении.
Вывести свои навыки веб-разработки на новый уровень на практике, помогут авторы канала, которые пишут код, изучают библиотеки за вас и дают резюме, собирают бесплатные книги и курсы по PHP и делятся с подписчиками.
Стоит подписаться: @phpshka
👍5🔥1🎉1
👨🏻💻 Не получается отловить исключение при валидации Codeigniter 4
Отправляю json методом post на контроллер через curl. В контроллере написано следующее:
Это происходит если приходят данные, не во вложенном массиве:
"Argument 2 passed to _array_search_dot() must be of the type array, string given, called in /codeigniter/system/Helpers/array_helper.php on line 56:
PHP задачи с собеседований
Отправляю json методом post на контроллер через curl. В контроллере написано следующее:
tryОжидаемый верный декодированный массив:
{
$input = $this->request->getJSON(true);
$this->validation->setRules([
'arrayValues.*.someId' => 'trim|required|string'
]);
$this->validation->run($input);
}
catch (\Exception $e)
{
$result = false;
}
$decodedArray = ['arrayValues' => [['someId' => 'qwe'],['someId' => 'ewq']]];В результате выполнения получаю ошибку внутри блока try/catch и в блок catch не переходит.
Это происходит если приходят данные, не во вложенном массиве:
"Argument 2 passed to _array_search_dot() must be of the type array, string given, called in /codeigniter/system/Helpers/array_helper.php on line 56:
$decodedArray = ['arrayValues' => ['someId' => 'qwe']];Если приходит пустой массив, то получаю ошибку
/codeigniter/system/Validation/Validation.php(266): trim() -> trim() expects parameter 1 to be string, array given
, но она ловится в try/catch нормально.$decodedArray = ['arrayValues' => []];Почему такое происходит и как от этого избавиться?
PHP задачи с собеседований
👨🏻💻 Не читает поля из файла XML
К тегу <Ид> не возможно обратится, скорее всего из-за кириллицы. Как можно исправить проблему или ее тут нет и мне нужно отдохнуть? <?php include 'unicode.inc';
К тегу <Ид> не возможно обратится, скорее всего из-за кириллицы. Как можно исправить проблему или ее тут нет и мне нужно отдохнуть? <?php include 'unicode.inc';
$xml_file = 'test.xml';PHP задачи с собеседований
$xml = simplexml_load_file($xml_file);
$xml="<?xml version='1.0' encoding='UTF-8'?>
// Приводим значения полей тега <Ид> к числовым значениям
$ids = [];
foreach ($xml->('Ид') as $id) {
$numeric_id = preg_replace('/[0-9]/', ' ', $id);
$id[0] = intval($numeric_id);
$ids[] = $id;
}
// Сохраняем изменения в новом файле
$date = date('Y-m-d');
$output_file = "test-$date.xml";
$xml->asXML($output_file);
echo "Файл $output_file успешно создан\n";
?>
👍6
👨🏻💻 Я пытаюсь получить данные из таблицы MySQL, но вылезает одна из этих ошибок:
PHP задачи с собеседований
mysql_fetch_array() expects parameter 1 to be resource, boolean givenили
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean givenВот мой код:
$username = $_POST['username'];Кто-нибудь знает, как решить эту проблему?
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE $username");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
PHP задачи с собеседований
👎3
👨🏻💻Изминения значение параметра в url по нажатию на ссылку
У меня есть такая таблица:
PHP задачи с собеседований
У меня есть такая таблица:
echo "<table border='1'>";Мне нужно по нажатию на ссылку, что бы менялся параметр direction на 0 или 1. Считать значение direction я могу, но как правильно изменить и записать его новое значение - в этом проблема.
echo "<tr>
<th><a href='?sort=1&direction=1'>Название продукта</a></th>
<th><a href='?sort=2&direction=1'>Цена в грн</a></th>
<th><a href='?sort=3&direction=1'>Количество (кг/шт)</a></th>
<th><a href='?sort=4&direction=1'>Стоимость в грн</a></th>
<th>Действие</th>
</tr>";
PHP задачи с собеседований
👨🏻💻 Получаю такую ошибку.
Пробовал - Curl error 60, SSL certificate issue: self signed certificate in certificate chain ,не помогло.
Может кто сталкивался ? Сижу час - ломаю голову. Поменял сертификат, запускаю без apache,через php artisan serv.
PHP задачи с собеседований
Пробовал - Curl error 60, SSL certificate issue: self signed certificate in certificate chain ,не помогло.
Может кто сталкивался ? Сижу час - ломаю голову. Поменял сертификат, запускаю без apache,через php artisan serv.
PHP задачи с собеседований
👎4
👨🏻💻 Аннотация Psalm для типа возвращаемого значения в месте вызова метода/функции
Для демонстрации проблемы есть такой упрощенный реальный код:
Понятно что причина в том, что в объявлении метода getParamByKey, mixed указан как тип возвращаемого значения, из-за чего psalm делает вывод, что в B::getParamX и B::getParamY могут прилететь данные любого типа. Только вот в действительности это не так, поскольку перед вызовами B::getParamX и B::getParamY вызывается метод A::validateParams, который гарантирует корректность типов для обоих методов.
Вопрос: какую аннотацию можно задать, чтобы заставить psalm корректно выводить типы с учетом вызова A::validateParams?
Если так сделать нельзя, то можно ли в месте вызова $this->getParamByKey указать возвращаемый тип из getParamByKey? Чтобы это выглядело как-то так:
PHP задачи с собеседований
Для демонстрации проблемы есть такой упрощенный реальный код:
abstract class AТеперь к сути. При прогоне этого кода через psalm для методов B::getParamX и B::getParamY я получаю по два варнинга: MixedReturnStatement: Could not infer a return type и MixedInferredReturnType: Could not verify return type 'string' for.
{
/**
* @var array<string, mixed>
*/
private array $params;
public function __construct(array $params)
{
static::validateParams($params);
$this->params = $params;
}
final protected function getParamByKey(string $key): mixed
{
return $this->params[$key];
}
/**
* @throws \InvalidArgumentException
*/
abstract protected static function validateParams(array $params): void;
}
final class B extends A
{
protected static function validateParams(array $params): void
{
if (!is_string($params['X'])) {
throw new \InvalidArgumentException('Param X must be string');
}
if (!is_int($params['Y'])) {
throw new \InvalidArgumentException('Param Y must be int');
}
}
public function getParamX(): string
{
return $this->getParamByKey('X');
}
public function getParamY(): int
{
return $this->getParamByKey('Y');
}
}
Понятно что причина в том, что в объявлении метода getParamByKey, mixed указан как тип возвращаемого значения, из-за чего psalm делает вывод, что в B::getParamX и B::getParamY могут прилететь данные любого типа. Только вот в действительности это не так, поскольку перед вызовами B::getParamX и B::getParamY вызывается метод A::validateParams, который гарантирует корректность типов для обоих методов.
Вопрос: какую аннотацию можно задать, чтобы заставить psalm корректно выводить типы с учетом вызова A::validateParams?
Если так сделать нельзя, то можно ли в месте вызова $this->getParamByKey указать возвращаемый тип из getParamByKey? Чтобы это выглядело как-то так:
public function getParamX(): stringТут конечно можно создать переменную, присвоить ей возвращаемое значение, а потом задать ей аннотацию / @var string $tmp /, только мне этот вариант не нравится, так как выглядит не очень красиво.
{
return $this->getParamByKey('X'); /** @psalm-return string */
}
public function getParamY(): int
{
return $this->getParamByKey('Y'); /** @psalm-return int */
}
PHP задачи с собеседований
👎4
👨🏻💻 Удалить пробел из строки в переменной PHP
Есть такой кусок кода
Для работы использую пхп 7.3
получаю 39 999
Использовал уже все известные регулярки, с различной кодировкой, без толку, не помогло ничего. Может кто подскажет решение проблемы? Кто сталкивался уже с таким
PHP задачи с собеседований
Есть такой кусок кода
$pric = $html->find('html body div span[class=price__value]', 0); // цена товараПарсингом $html = new simple_html_dom(); вытаскиваю цену товара, но внутри цены присутствует пробел, в итоге у меня берет цифры до пробела (если тысячи) и нормально если пробела нет.
$pric = strip_tags($pric); // обрезаю лишние хтмл теги
$pric = preg_replace('%^\s+|\s+$%u', '', $pric); // здесь должна быть цена без пробелов (но они есть)
Для работы использую пхп 7.3
получаю 39 999
Использовал уже все известные регулярки, с различной кодировкой, без толку, не помогло ничего. Может кто подскажет решение проблемы? Кто сталкивался уже с таким
$pric = html_entity_decode($pric);и все остается так же как и было. Пробел на месте пы.сы. Из последнего, попробовал заменить пробел на "-", видит пробел в конце строки, а не в середине (между цифрами)
echo $pric. "<br>";
$pric = preg_replace('% %u', '', $pric);
echo $pric. "<br>"; // выводим цену
PHP задачи с собеседований
👨🏻💻 Как сложить два равных по длине массива по индексам
Есть два массива
Как сложить эти два массива с равными индексами чтобы на выходе получилось следующее
Есть два массива
$arr = array([0] => 1,[1] => 2, [2] => 3 )Размеры массивов могут меняться, но они всегда будут одинаковыми
$arr1 = array([0] => 4,[1] => 5, [2] => 6 )
Как сложить эти два массива с равными индексами чтобы на выходе получилось следующее
array([0] => 5,[1] => 7,[2] => 9)
PHP задачи с собеседований👍3