• Как дождаться полной загрузки страницы на Selenium python?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    from selenium.webdriver.support import expected_conditions as ec
    
    element = WebDriverWait(driver, 10).until(ec.presence_of_element_located((By.TAG_NAME, "html")))

    Вставьте строку с element перед строкой
    new_page = driver.find_element_by_tag_name('html')
    Пока страница не загрузится выполнение кода не продолжиться.
    Ответ написан
    7 комментариев
  • Можно ли и как создать еще один кошелек в яндекс.деньги?

    YooMoneyHelp
    @YooMoneyHelp
    К одному аккаунту на Яндексе — один кошелёк Яндекс.Денег. Можно создать новый аккаунт и открыть к нему кошелёк, до 10 штук :)
    Ответ написан
    Комментировать
  • Как разобрать JSON массив?

    0xD34F
    @0xD34F
    array_filter(array_map(function($n) {
      return $n->business->id ?? null;
    }, $arr))
    Ответ написан
    Комментировать
  • Как разобрать JSON массив?

    Kasperenysh
    @Kasperenysh
    Рецидив в особо острой форме))
    $id;
    foreach ($arr as $val) {
        $id[] = $val["business"]["id"];
    }
    var_dump($id);
    Ответ написан
    Комментировать
  • Несколько данных из бд в одну переменную php?

    SagePtr
    @SagePtr
    Еда - это святое
    Перед цикалом:
    $idak = [];
    А в цикале уже:
    $idak[] = $usergarem['user_id'];
    Ответ написан
    2 комментария
  • Будет ли Facebook считать цель конверсии, если источник трафика был другой?

    @2vtlk
    Будет, но не в интерфейсе где ваша реклама, он не будет смешивать другую рекламу и свою. Можете лить сколько угодно со всевозможных источников трафика - фб умный, данные не смешаются.
    Ответ написан
    Комментировать
  • Почему Фейсбук банит или запрашивает фотку при входе с другого устройства?

    @Majarik
    Антифрод система и траст. Сам борюсь 2 месяц.
    Ответ написан
    Комментировать
  • Почему добавляются пустые записи в бд?

    @402d
    начинал с бейсика на УКНЦ в 1988
    у вас переменные приходят в гете а не в посте
    Ответ написан
    Комментировать
  • Array php вывод по названию?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    <?php
    $arr = [
        result => '',
        error => 'Error 10104: Incorrect code EX-CODE',
        task_id => 0,
        amount => 0,
        currency => '',
        balances =>[],
    ];
    
    echo $arr['error'];
    Ответ написан
    Комментировать
  • Как сделать ссылку на бота в ТГ если t.me в блоке у РКН? Без ВПН?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Любые альтернативы t.me добавляют со временем рекламу и редиректы на сторонние сайты.
    Пришлось запилить собственное решение https://github.com/tgrm/tgrm.github.io
    Ответ написан
    Комментировать
  • Как вернуть 2 значения в PHP return?

    SerafimArts
    @SerafimArts
    Junior HTML Developer
    Вариант 1 - Деструктуризация:
    // Возврат нескольких значений:
    function some() {
        return [23, 42];
    }
    
    // Получение
    [$a, $b] = some();
    
    \var_dump($a, $b);


    Вариант 2 - Деструктуризация с ключами:
    // Возврат нескольких значений:
    function some() {
        return ['a' => 23, 'b' => 42];
    }
    
    // Получение
    ['a' => $a, 'b' => $b] = some();
    
    \var_dump($a, $b);


    Вариант 3 - Генераторы с ключами:
    function some() {
        yield 'a' => 23;
        yield 'b' => 42;
    }
    
    foreach (some() as $key => $value) {
      echo $key . ':' . $value; // a:23 b:42
    }


    Вариант 4 - Генераторы без ключей:
    function some() {
        yield 23;
        yield 42;
    }
    
    foreach (some() as $value) {
      echo $value; // 23 42
    }


    Вариант 5 - Генераторы с возвратом:
    function some() {
        yield 23;
        return 42;
    }
    
    $value = some();
    echo $value->current(); // 23
    $value->next();
    echo $value->getReturn(); // 42


    Вариант 6 - DTO:
    class DataTransferObject
    {
        private $a;
        private $b;
    
        public function __construct($a, $b)
        {
            $this->a = $a;
            $this->b = $b;
        }
    
        public function getA()
        {
            return $this->a;
        }
    
        public function getB()
        {
            return $this->b;
        }
    }
    
    function some() {
        return new DataTransferObject(23, 42);
    }
    
    $value = some();
    echo $value->getA(); // 23
    echo $value->getB(); // 42


    И ещё куча всяких вариантов, но мне влом придумывать уже)
    Ответ написан
    4 комментария
  • Как реализовать принцип единственной обязанности?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это хороший вопрос.

    Начнем с того, что согласно принципу единственной обязанности в контроллере никакого добавления в БД быть не должно.
    Контроллер, вообще, это самая ничтожная часть веб-приложения. Его задача - получить данные из НТТР запроса и передать их в модель и потом передать ответ браузеру. Тупо "подай-принеси".
    А вот модель уже и должна записывать в базу, проверять валидность данных и совершать все прочие телодвижения.

    чтобы сформировать абстракцию, надо знать задачу не на уровне огрызка туманной фразы, "ряд дополнительных методов и запросов, нужных для формирования фильтров в магазине". Что за запросы? При чем здесь фильтры вообще? Как реализован интерфейс с БД - это ОРМ, прямая работа с БД, что-то ещё?

    Судя по информации из комментов, тут пригодится хелпер сервис. Отдельный класс, который реализует добавление товара.

    То есть контроллер дергает валидатор и смотрит ответ.
    Если есть ошибка валидации, то показывает форму обратно
    Если ошибок нет - дергает сервис на добавление товара и потом редиректит куда-нибудь

    А сервис уже выполняет все те действия, которые необходимы при добавлении товара.

    В принципе, валидацию тоже можно в сервис, но тогда надо продумать обратную коммуникацию с контроллером.

    Самое главное что тут надо понимать - что Модель - это не интерфейс по взаимодействию с одного класса с одной таблицей в БД (как это до сих пор считается большинством), а вся совокупность логики - классов и модулей - реализующих бизнес-логику приложения. То есть, в модель входят и мапперы, и сервисы, и репозитории и все что угодно - кроме интерфейсов взаимодействия с внешним миром, таких как контроллеры.
    Ответ написан
    7 комментариев
  • Как запускать php-скрипт через 5 минут?

    @Mysterion
    При регистрации ставить статус, условно, 1. Скриптом, который указан в cron, обходить все статусы с 1, отправлять почту и ставить статус 2.
    Ответ написан
    Комментировать
  • В чем разница между namespace и use? И как они связаны с файловой системой?

    @MadridianFox
    Web-программист, многостаночник
    На уровне языка пространства имён с файловой системой никак не связаны.
    Пространства имён - лишь способ решить конфликты имён классов.
    Вот ты говоришь - у меня есть класс ClassName, но к сожалению, такой класс уже есть в одной из библиотек, которые ты используешь. Можно было бы назвать класс MyClassName, ну и везде добавлять приставку My. Редко, но бывает что надо сделать два класса с одинаковым именем в одном проекте. Тогда ты называешь один класс MyBananaSybsystemClassName, а другой MyAnanasSubsystemClassName - тем самым обозначая разницу в названии.
    И даже это не спасёт от простого совпадения.

    И тут на помощь приходят пространства имён.
    В начале файла в котором лежат классы (лучше один класс в одном файле) пишется название пространсва имён, вот так:
    namespace banana;
    И теперь все классы, объявленные в этом пространстве имён имеют название banana\ClassName, хотя внутри этого файлв ты можешь по прежнему обращаться к ним просто по ClassName.
    В другом файле надо использовать полное название, вроде как:
    $obj = new banana\ClassName();
    но, если надо много раз писать название класса можно сделать вот так:
    use banana\ClassName;
    $obj = new ClassName();

    , но самое полезное здесь это разрешение конфликтов. Если вдруг в другом месте определён такой же ClassName, то можно просто переименовать его:
    use banana\ClassName;
    use ananas\ClassName as AnanasClass;
    $obj1 = new ClassName();
    $obj2 = new AnanasClass();


    Вот это и есть суть пространства имён. Таковы они во всех языках программирования в которых они есть.
    Но есть от них ещё одна польза - можно настроить автоматическое подключение unclude(); файла с классом.
    Делается это с помощью определения функции автозагрузки
    function __autoload($classname){
    // как-то по имени класса находим файл и подключаем
    }
    // или, лучше
    spl_autoload_register(function ($classname) {
       // как-то по имени класса находим файл и подключаем
    });


    Каждый раз, когда ты обращаешься к классу и php не может его найти в подключенных файлах - запускается код написанный в функции автозагрузки. В эту функцию передаётся название класса.
    При чём же тут пространства имён? А при том, что в функцию автозагрузки передаётся полное имя класса с пространтсвом имён.
    Это значит что ты можешь делать по одному файлу на класс, класть их в папки, а в пространство имён в каждом файле писать путь до этого файла.
    После этого пишешь функцию, которая просто заменяет в названии класса слеши на те, что поддерживаются операционной системой как разделители пути, и просто подключаешь файл.
    Именно об этом и написано в каком-то там PSR
    Ответ написан
    2 комментария
  • Как сравнить значения в массиве?

    Ошибка в том что php не знает, что такое $likes и т. д. Не объявлена переменная. Как-то так будет правильно, efficiency будет массив с эффективностью поста, если есть имя поста и он уникальный то можно его в качестве ключа:
    $result = json_decode(file_get_contents('https://api.vk.com/method/wall.get?'. $get_params), TRUE);
    
    
    $res = $result['response']['items'];
    
    $efficiency = [];
    
    foreach ($res as $value) {
        echo "Текст " . $value['text'] . "<br>";
        echo "Комментариев " . $value['comments']['count'] . "<br>";
        echo "Репосты " . $value['reposts']['count'] . "<br>";
        echo "Просмотры " . $value['views']['count'] . "<br>";
        echo "Лайков " . $value['likes']['count'] . "<br><br>";
    
    $efficiency[] = (($value['likes']['count'] - $value['reposts']['count']) + ($value['reposts']['count'] * 10))/$value['views']['count'];
       }
    Ответ написан
    Комментировать
  • Как сделать редактирование в модальном окне Laravel?

    @zheka_9l
    Full stack
    Это bootstrap?

    Да, значит берешь модальное окно и передаешь в него данные.

    https://bootstrap-4.ru/docs/4.0/components/modal/

    Там все описано, как передать данные в модальное окно.

    Потом просто ajax'ом шлешь запрос к апи и все.
    Где взять API? Реализаций REST API на Laravel в инете полно, учитесь гуглить.
    Ответ написан
    Комментировать
  • Что не так со скриптом, если PHP всё время получает 0 от БД?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вообще то магия вне Хогвардса запрещена, по этому ищите материальные причины:
    1) Проверьте что попадает в запрос, просто выведите строку в ехо:
    echo "SELECT `id` FROM `users` WHERE `name` = '$fullname' AND `password` = '$password'";

    2) вставьте в консоль мускуля или в пхпмайадмин эту строку и посмотрите что вернет запрос(скорее всего уже на первом шаге будет ясно что там какая-то лажа)
    3) Проверьте что в базе реально есть такая строка которая соответствует запросу(опять же, скорее всего косяк где-то в пп1-2 и к этому шагу вы не дойдете)

    PS: логин с паролем в куках - это сильно )
    Ответ написан
    Комментировать
  • Какая оптимальная структура БД платежной системы сайта?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    Таблица xxxxx_response не нужна!
    Скриптом от платежной системы сразу меняется СТАТУС заказа.
    Таблица одна - ЗАКАЗЫ. Она связана с таблицей ТОВАРЫ, ПОКУПАТЕЛИ и пожалуй хватит для вас)))

    Ну а если по сути:
    Все лучшие практики по созданию магазина в одиночку заканчиваются получением паспорта и началом настоящей взрослой жизни с девками, блекджеком и коньяком.
    Ответ написан
    7 комментариев