PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 16
Mandalorian Отправлено: 04 Июля, 2022 - 08:49:38 • Тема: PhpMyAdmin не отображает базы данных и другие параметры при аутентификации • Форум: Вопросы новичков

Ответов: 0
Просмотров: 997
Здравствуйте! При заходе в phpmyadmin не отображаются параметры.

Проблема описана подробнее вот здесь: https://github[dot]com/phpmyadmin/ph[dot][dot][dot]min/issues/17585

Подскажите, как решить вопрос, может кто знает?
Mandalorian Отправлено: 01 Июля, 2022 - 16:24:03 • Тема: SQLSTATE[HY000] [2002] Permission denied • Форум: Вопросы новичков

Ответов: 1
Просмотров: 1154
Здравствуйте, помогите пожалуйста с ошибкой.
Пытаюсь подружить Laravel с mysql и после команды 'php artisan migrate' вылетает эта ошибка:
SQLSTATE[HY000] [2002] Permission denied (SQL: create table `migrations` (`id` int unsigned not null auto_increment primary key, `migration` varchar(255) not null, `batch` int not null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')

файл .env:
APP_NAME=laravel.local
APP_ENV=local
APP_KEY=base64:uO+00ua2t4V+T21hdsyzPQQ6aLDfBxgOpgT7CnWwDLs=
APP_DEBUG=true
APP_URL=http://127[dot]0[dot]0[dot]1

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

файл config/database.php

'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'root'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],


Уже что только не делал. Менял 127.0.0.1 на localhost и обратно.
На этой ссылке у меня PHPMyAdmin: http://127[dot]0[dot]0[dot]1:3000/openserver[dot][dot][dot]yadmin/index.php

Через эту домашняя страница моего сайта: http://127[dot]0[dot]0[dot]1:8000/

Что я не так делаю? Ктото сталкивался? Куда еще смотреть?
Mandalorian Отправлено: 24 Декабря, 2021 - 16:10:21 • Тема: Проблемы с xdebug • Форум: Вопросы новичков

Ответов: 1
Просмотров: 195
Вобщем проблему решил. В моем случае, после обновления на php 8.0 слетел phpunit.
Установил phpunit и с помощью команды

XDEBUG_MODE=coverage composer exec --verbose phpunit tests -- --coverage-text

тесты прошли.
Mandalorian Отправлено: 24 Декабря, 2021 - 11:45:36 • Тема: Проблемы с xdebug • Форум: Вопросы новичков

Ответов: 1
Просмотров: 195
Здравствуйте! Сейчас работаю в WSL на Windows 10 - Ubuntu 20.04.
Поставил php 8.0.
Есть папка в которой одна папка с кодом а другая с тестами.
Хотел посмотреть покрытие тестами.

Запускаю команду
composer exec --verbose phpunit tests -- --coverage-text

В ответ получаю

> __exec_command: phpunit 'tests' '--coverage-text'
PHPUnit 9.5.10 by Sebastian Bergmann and contributors.

Warning: XDEBUG_MODE=coverage or xdebug.mode=coverage has to be set

..... 5 / 5 (100%)

Time: 00:00.032, Memory: 6.00 MB

OK (5 tests, 10 assertions)

Расскажите что к чему. Где мне прописывать XDEBUG_MODE=coverage?
Mandalorian Отправлено: 13 Декабря, 2021 - 16:04:41 • Тема: Реализация функции • Форум: Вопросы новичков

Ответов: 2
Просмотров: 301
Вобщем, вроде, решил.

PHP:
скопировать код в буфер обмена
  1.  
  2. function getIn($data, $keys)
  3. {
  4.     $current = $data;
  5.     $result = null;
  6.     foreach($keys as $k=>$key) {
  7.         if(is_array($current) and array_key_exists($key, $current)){
  8.             $result = $current[$key];
  9.             unset($keys[$k]);
  10.             if(count($keys) > 0) {
  11.                 $result = getIn($result, $keys);
  12.             }  
  13.         }    
  14.     }
  15.     return $result;
  16. }  
  17.  


Если у кого есть варианты получше, было бы интерестно посмотреть.
Mandalorian Отправлено: 12 Декабря, 2021 - 12:47:38 • Тема: Реализация функции • Форум: Вопросы новичков

Ответов: 2
Просмотров: 301
Здравствуйте! Стоит вот такая задача.

Реализуйте функцию getIn, которая извлекает из массива (который может быть любой глубины вложенности) значение по указанным ключам. Аргументы:

Исходный массив
Массив ключей, по которым ведется поиск значения
В случае, когда добраться до значения невозможно, возвращается null.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $data = [
  5.     'user' => 'ubuntu',
  6.     'hosts' => [
  7.         ['name' => 'web1'],
  8.         ['name' => 'web2', null => 3, 'active' => false]
  9.     ]
  10. ];
  11.  
  12. getIn($data, ['undefined']); // null
  13. getIn($data, ['user']); // 'ubuntu'
  14. getIn($data, ['user', 'ubuntu']); // null
  15. getIn($data, ['hosts', 1, 'name']); // 'web2'
  16. getIn($data, ['hosts', 0]); // ['name' => 'web1']
  17. getIn($data, ['hosts', 1, null]); // 3
  18. getIn($data, ['hosts', 1, 'active']); // false
  19.  


Вроде как решил ее через рекурсию.
PHP:
скопировать код в буфер обмена
  1.  
  2. function getIn($array, $keys)
  3. {
  4.     $curr = array_shift($keys);
  5.    
  6.             if(is_array($array) and array_key_exists($curr, $array)) {
  7.                 $result = $array[$curr];
  8.                
  9.                 if (count($keys) > 0) {
  10.                    $result = getIn($result, $keys);
  11.                 }    
  12.                 return $result;  
  13.             }
  14. }  
  15.  


Интересует решение через foreach, чето не могу додуматься...
Mandalorian Отправлено: 25 Ноября, 2021 - 09:20:56 • Тема: Реализация функции • Форум: Вопросы новичков

Ответов: 7
Просмотров: 628
Всем большое спасибо!

don.bidon пишет:
$opened = 0;

don.bidon, понравилось Ваше решение со счетчиком $opened Здорово
Mandalorian Отправлено: 24 Ноября, 2021 - 14:10:17 • Тема: Реализация функции • Форум: Вопросы новичков

Ответов: 7
Просмотров: 628
Здравствуйте! Стоит вот такая задача.

Реализуйте функцию isBalanced, которая принимает на вход строку, состоящую только из открывающих и закрывающих круглых скобок, и проверяет, является ли эта строка корректной. Пустая строка (отсутствие скобок) считается корректной.

Строка считается корректной (сбалансированной), если содержащаяся в ней скобочная структура соответствует требованиям:

Скобки — это парные структуры. У каждой открывающей скобки должна быть соответствующая ей закрывающая скобка.
Закрывающая скобка не должна идти впереди открывающей. Такой вариант недопустим )(, а вот такой допустим ()().

PHP:
скопировать код в буфер обмена
  1.  
  2. isBalanced('(())');  // true
  3. isBalanced('((())'); // false
  4.  


Написал решение такого плана:

PHP:
скопировать код в буфер обмена
  1.  
  2. function isBalanced($str) {
  3. $length = strlen($str);    
  4. $resLeft = [];
  5. $resRight = [];
  6.    
  7. for($i = 0; $i < $length; $i++){
  8. if ($str[$i] === '(') {
  9.     $resLeft []= $i;
  10.     } elseif ($str[$i] === ')') {
  11.     $resRight []= $i;
  12.     }
  13. }
  14.  
  15. for($i = 0; $i < $length; $i++){
  16.  
  17. if($resLeft[$i] > $resRight[$i]) {
  18.     return false;
  19. }
  20. }
  21. return true;
  22. }
  23.  


Вроде выдает правильные ответы.

Вопрос: может можно както упростить? Или на что-то не обратил внимания.
Mandalorian Отправлено: 12 Ноября, 2021 - 08:12:14 • Тема: Проблема с кодировкой • Форум: Вопросы новичков

Ответов: 2
Просмотров: 364
Большое спасибо.
Mandalorian Отправлено: 11 Ноября, 2021 - 19:44:56 • Тема: Проблема с кодировкой • Форум: Вопросы новичков

Ответов: 2
Просмотров: 364
Здравствуйте! Есть такое задание:

Допишите реализацию функции invertCase(), которая инвертирует регистр каждого символа в переданной строке.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $str = 'ПрИвЕт!';
  5. invertCase($str); // пРиВеТ!
  6.  


Я написал решение такого плана:

PHP:
скопировать код в буфер обмена
  1.  
  2. function invertCase($text)
  3. {
  4.     // BEGIN (write your solution here)
  5.     $result = '';
  6.     for($i = 0; $i <= mb_strlen($text); $i++) {
  7.         if($text[$i] === mb_strtolower($text[$i])) {
  8.             $result .= mb_strtoupper($text[$i]);
  9.         } else {
  10.             $result .= mb_strtolower($text[$i]);
  11.         }
  12.     }
  13.     return $result;
  14.     // END
  15. }
  16.  
  17. echo invertCase('пРивет'); // выдаст ???????
  18.  


при этом правильный ответ такой:
PHP:
скопировать код в буфер обмена
  1.  
  2. function invertCase($text)
  3. {
  4. $len = mb_strlen($text);
  5.     $result = '';
  6.     for ($i = 0; $i < $len; $i++) {
  7.         $symbol = mb_substr($text, $i, 1);
  8.         $lowerSymbol = mb_strtolower($symbol);
  9.         if ($symbol === $lowerSymbol) {
  10.             $result .= mb_strtoupper($symbol);
  11.         } else {
  12.             $result .= $lowerSymbol;
  13.         }
  14.     }
  15.     return $result;
  16. }
  17.  


Вопрос: в чем принципиальная разница, что первый вариант не выдает правильную кодировку, а второй вариант отрабатывает все правильно?
На что мне обратить внимание?
Mandalorian Отправлено: 20 Сентября, 2021 - 12:59:27 • Тема: Скрипт-гороскоп • Форум: Вопросы новичков

Ответов: 3
Просмотров: 472
Я кстати вспомнил. В функцию mktime можно не передавать последним параметром год date('Y'), так как функция берет автоматически год, который сейчас.

По поводу первого вопроса с датами $today и $tommorow нашел еще такой вариант записи:
PHP:
скопировать код в буфер обмена
  1.  
  2. $today = date('d.m.Y');
  3. $tommorow = date('d.m.Y', strtotime("+ 1 day"));
  4.  


Тут уже будет учитываться смена месяца и года.
Mandalorian Отправлено: 20 Сентября, 2021 - 08:11:37 • Тема: Скрипт-гороскоп • Форум: Вопросы новичков

Ответов: 3
Просмотров: 472
Большое спасибо!
Mandalorian Отправлено: 17 Сентября, 2021 - 17:30:48 • Тема: Скрипт-гороскоп • Форум: Вопросы новичков

Ответов: 3
Просмотров: 472
Здравствуйте! Занимаюсь по онлайн учебнику Трепачев Д.П.
Задача.

Сделайте скрипт-гороскоп. Внутри него хранится массив гороскопов на несколько дней вперед для каждого знака зодиака. По заходу на страницу спросите у пользователя дату рождения, определите его знак зодиака и выведите предсказание для этого знака зодиака на текущий день.

Написал код такого плана.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. ini_set('error_reporting', E_ALL);
  4. ini_set('display_errors', 1);
  5. ini_set('display_startup_errors', 1);
  6.    
  7. if (empty($_GET)){
  8. ?>
  9.  
  10. <form action="" method="GET">
  11. <input name="birth" placeholder="dd.mm.yyyy">
  12. <input type="submit">
  13. </form>
  14.  
  15. <?PHP
  16. } else {
  17.  
  18. $date = $_GET['birth'];
  19. $arrDate = explode('.', $date);
  20. $dateStamp = mktime(0,0,0,$arrDate[1],$arrDate[0],date('Y'));
  21.  
  22. $today = date('d');
  23. $tommorow = date('d')+1;
  24.  
  25. $horoscope = [
  26.         'Овен'=>[$today=>'гороскоп Овна на Сегодня',$tommorow=>'гороскоп Овна на Завтра'],
  27.         'Телец'=>[$today=>'гороскоп Тельца на Сегодня',$tommorow=>'гороскоп Тельца на Завтра'],
  28.         'Близнецы'=>[$today=>'гороскоп Близнецов на Сегодня',$tommorow=>'гороскоп Близнецов на Завтра'],
  29.         'Рак'=>[$today=>'гороскоп Рака на Сегодня',$tommorow=>'гороскоп Рака на Завтра'],
  30.         'Лев'=>[$today=>'гороскоп Льва на Сегодня',$tommorow=>'гороскоп Льва на Завтра'],
  31.         'Дева'=>[$today=>'гороскоп Девы на Сегодня',$tommorow=>'гороскоп Девы на Завтра'],
  32.         'Весы'=>[$today=>'гороскоп Весов на Сегодня',$tommorow=>'гороскоп Весов на Завтра'],
  33.         'Скорпион'=>[$today=>'гороскоп Скорпиона на Сегодня',$tommorow=>'гороскоп Скорпиона на Завтра'],
  34.         'Стрелец'=>[$today=>'гороскоп Стрельца на Сегодня',$tommorow=>'гороскоп Стрельца на Завтра'],
  35.         'Козерог'=>[$today=>'гороскоп Козерога на Сегодня',$tommorow=>'гороскоп Козерога на Завтра'],
  36.         'Водолей'=>[$today=>'гороскоп Водолея на Сегодня',$tommorow=>'гороскоп Водолея на Завтра'],
  37.         'Рыбы'=>[$today=>'гороскоп Рыб на Сегодня',$tommorow=>'гороскоп Рыб на Завтра'],
  38. ];
  39.  
  40. $zodiacs = [
  41.         'Овен'=>[2103, 1904],
  42.         'Телец'=>[2004, 2005],
  43.         'Близнецы'=>[2105, 2006],
  44.         'Рак'=>[2106, 2207],
  45.         'Лев'=>[2307, 2208],
  46.         'Дева'=>[2308, 2209],
  47.         'Весы'=>[2309, 2210],
  48.         'Скорпион'=>[2310, 2111],
  49.         'Стрелец'=>[2211, 2112],
  50.         'Козерог'=>[2212, 1901],
  51.         'Водолей'=>[2001, 1802],
  52.         'Рыбы'=>[1902, 2003],
  53. ];
  54.  
  55.  
  56.  
  57. foreach($zodiacs as $key=>$sign) {
  58.         foreach($sign as $date) {
  59.                 $res = str_split($date, 2);
  60.                 $zodiacs[$key][] = mktime(0,0,0,$res[1], $res[0], date('Y'));   // третьим и четвертым элементом массива записываю временные рамки знака в формате Timestamp
  61.                 }
  62.         if ($dateStamp > $zodiacs[$key][2] && $dateStamp < $zodiacs[$key][3]) {  // здесь соответственно сравниваю дату рождения и временные рамки знака
  63.                 print_r ("$key<br>");
  64.                 print_r ("$horoscope[$key][$today]<br>");
  65.         }
  66.     }
  67. }
  68. ?>
  69.  


Старался делать с учетом уже пройденного материала, чтоб не слишком сложно было.

Интерестно услышать мнения на счет кода. Может можно что-то улучшить? Или проще написать. Или вобще по другому надо... По интернету посмотрел решения другие, и чего-то не легли на душу. Решил по своей логике попробовать.
Mandalorian Отправлено: 08 Сентября, 2021 - 09:32:47 • Тема: Получить собственные делители числа, являющиеся простыми числами • Форум: Вопросы новичков

Ответов: 4
Просмотров: 799
Понял, спасибо!
Mandalorian Отправлено: 07 Сентября, 2021 - 20:19:08 • Тема: Получить собственные делители числа, являющиеся простыми числами • Форум: Вопросы новичков

Ответов: 4
Просмотров: 799
По поводу простых чисел прочитал, спасибо. Почему-то думал, что знаю что это. Оказывается, совсем не то)

Собственно, второй вопрос отпал теперь.

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB