Ответы пользователя по тегу PHP
  • Как убрать пробелы по обе стороны от нужного символа?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Я бы написал как-нибудь так:
    $cleared = implode('|', array_map(
        function ($piece) { return trim($piece); },
        explode('|', $text)
    );
    Ответ написан
    Комментировать
  • Как скопировать запрос из postman в php?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    // Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, 'https://xxxxx.ru/xxx');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "detailNum=9091901164&loadingGroupId=&locationId=24732&deliveryType=&isFirstLoading=false&sessionId=e8f0eaa4-f75f-4285-bd93-0577bc9924e3&latitude=55.0128&longitude=82.9408&geoCoordsType=Location&__Version=1.9.0.2&__RequestVerificationToken=u2uPi63bnyZQWoJSMKI3qD6bZZEr8J3zxFE4I81MhkCnCjkc7iVp4rx8p65eDSAvrbYu4jP7Uc2YTOQPnaOlaROdBigNs9jc3u12bXzgLJO5Gd3C8DbzJhulscYrb4qE14akNHXSUvzOkeV72z4Nzw2&packetId=-1");
    curl_setopt($ch, CURLOPT_POST, 1);
    
    $headers = array();
    $headers[] = 'Accept: */*';
    $headers[] = 'Accept-Encoding: gzip, deflate, br';
    $headers[] = 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';
    $headers[] = 'Cache-Control: no-cache';
    $headers[] = 'Connection: keep-alive';
    $headers[] = 'Content-Length: 402';
    $headers[] = 'Content-Type: application/x-www-form-urlencoded';
    $headers[] = 'Cookie: current-region-long-lat=%257B%2522Id%2522%253A1518%252C%2522Name%2522%253A%2522%25D0%259D%25D0%25BE%25D0%25B2%25D0%25BE%25D1%2581%25D0%25B8%25D0%25B1%25D0%25B8%25D1%2580%25D1%2581%25D0%25BA%2522%252C%2522EmexName%2522%253A%2522%25D0%259D%25D0%25BE%25D0%25B2%25D0%25BE%25D1%2581%25D0%25B8%25D0%25B1%25D0%25B8%25D1%2580%25D1%2581%25D0%25BA%2522%252C%2522Longitude%2522%253A82.92043%252C%2522Latitude%2522%253A55.030199%252C%2522AreaId%2522%253A2127%252C%2522AreaName%2522%253A%2522%25D0%259D%25D0%25BE%25D0%25B2%25D0%25BE%25D1%2581%25D0%25B8%25D0%25B1%25D0%25B8%25D1%2580%25D1%2581%25D0%25BA%25D0%25B0%25D1%258F%2520%25D0%25BE%25D0%25B1%25D0%25BB%25D0%25B0%25D1%2581%25D1%2582%25D1%258C%2522%252C%2522CountryId%2522%253A3%252C%2522CountryName%2522%253A%2522%25D0%25A0%25D0%25BE%25D1%2581%25D1%2581%25D0%25B8%25D1%258F%2522%257D; best-location=9129; current-location=24732; __RequestVerificationToken=-L-u6zozq7CHXAfsSuxpETbR3-L9QFS9Au4ekdstXNo1H_zVNtK8SICMvNLawsEnKxhONZEL0jV9r5h8LQzRDcyZ3wKiz0ypPcXt17dxGRxUJg4BohliZPG2acGwqBUReWPW7NDvM5ZoiWxoPgqs4g2; NSC_xxx.fnfy.sv=ffffffffc3a07a6345525d5f4f58455e445a4a423652; _ym_uid=1561881082464230690; _ym_d=1561881082; _ym_isad=2; _ym_visorc_18880285=w; _ga=GA1.2.401420290.1561881083; _gid=GA1.2.1767642029.1561881083; isBestLocationDetected=true; current-position=%257B%2522X%2522%253A%252282.9408%2522%252C%2522Y%2522%253A%252255.0128%2522%252C%2522type%2522%253A%2522Location%2522%252C%2522source%2522%253A%2522CurrentLocation%2522%252C%2522fixed%2522%253Afalse%257D; _gat=1; _gat_physTracker=1,current-region-long-lat=%257B%2522Id%2522%253A1518%252C%2522Name%2522%253A%2522%25D0%259D%25D0%25BE%25D0%25B2%25D0%25BE%25D1%2581%25D0%25B8%25D0%25B1%25D0%25B8%25D1%2580%25D1%2581%25D0%25BA%2522%252C%2522EmexName%2522%253A%2522%25D0%259D%25D0%25BE%25D0%25B2%25D0%25BE%25D1%2581%25D0%25B8%25D0%25B1%25D0%25B8%25D1%2580%25D1%2581%25D0%25BA%2522%252C%2522Longitude%2522%253A82.92043%252C%2522Latitude%2522%253A55.030199%252C%2522AreaId%2522%253A2127%252C%2522AreaName%2522%253A%2522%25D0%259D%25D0%25BE%25D0%25B2%25D0%25BE%25D1%2581%25D0%25B8%25D0%25B1%25D0%25B8%25D1%2580%25D1%2581%25D0%25BA%25D0%25B0%25D1%258F%2520%25D0%25BE%25D0%25B1%25D0%25BB%25D0%25B0%25D1%2581%25D1%2582%25D1%258C%2522%252C%2522CountryId%2522%253A3%252C%2522CountryName%2522%253A%2522%25D0%25A0%25D0%25BE%25D1%2581%25D1%2581%25D0%25B8%25D1%258F%2522%257D; best-location=9129; current-location=24732; __RequestVerificationToken=-L-u6zozq7CHXAfsSuxpETbR3-L9QFS9Au4ekdstXNo1H_zVNtK8SICMvNLawsEnKxhONZEL0jV9r5h8LQzRDcyZ3wKiz0ypPcXt17dxGRxUJg4BohliZPG2acGwqBUReWPW7NDvM5ZoiWxoPgqs4g2; NSC_xxx.fnfy.sv=ffffffffc3a07a6345525d5f4f58455e445a4a423652; _ym_uid=1561881082464230690; _ym_d=1561881082; _ym_isad=2; _ym_visorc_18880285=w; _ga=GA1.2.401420290.1561881083; _gid=GA1.2.1767642029.1561881083; isBestLocationDetected=true; current-position=%257B%2522X%2522%253A%252282.9408%2522%252C%2522Y%2522%253A%252255.0128%2522%252C%2522type%2522%253A%2522Location%2522%252C%2522source%2522%253A%2522CurrentLocation%2522%252C%2522fixed%2522%253Afalse%257D; _gat=1; _gat_physTracker=1; current-region-long-lat=%7b%22Id%22%3a1518%2c%22Name%22%3a%22%d0%9d%d0%be%d0%b2%d0%be%d1%81%d0%b8%d0%b1%d0%b8%d1%80%d1%81%d0%ba%22%2c%22EmexName%22%3a%22%d0%9d%d0%be%d0%b2%d0%be%d1%81%d0%b8%d0%b1%d0%b8%d1%80%d1%81%d0%ba%22%2c%22Longitude%22%3a82.920430%2c%22Latitude%22%3a55.030199%2c%22AreaId%22%3a2127%2c%22AreaName%22%3a%22%d0%9d%d0%be%d0%b2%d0%be%d1%81%d0%b8%d0%b1%d0%b8%d1%80%d1%81%d0%ba%d0%b0%d1%8f+%d0%be%d0%b1%d0%bb%d0%b0%d1%81%d1%82%d1%8c%22%2c%22CountryId%22%3a3%2c%22CountryName%22%3a%22%d0%a0%d0%be%d1%81%d1%81%d0%b8%d1%8f%22%7d; best-location=9129; current-location=9129; __RequestVerificationToken=efWU7upM9OIZJy_CysRzDqI4vE8Wu5s6niost8hyNj_HS6SIrOm3pANufATbRF5lctlq_APKtwVTxYEqf9uHtfgBLq_dgsSZHjI8yqA46_iK4bypVNlA-SX6oCrydcknfA6_t_QpwOgwXPFg9KNxLg2';
    $headers[] = 'Host: xxxx.ru';
    $headers[] = 'Pragma: no-cache';
    $headers[] = 'Referer: https://xxxx.ru/f?detailNum=9091901164&packet=-1';
    $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0';
    $headers[] = 'X-Requested-With: XMLHttpRequest';
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }
    curl_close($ch);

    Так попробуйте. Взято отсюда. :)
    Ответ написан
  • Как найти числовой индекс массива?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Возможно вам поможет функция array_values()
    Ответ написан
    Комментировать
  • Как в PHP выбрать случайное значение из массива?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    $index = round(time() / (30 * 60));
    $rand_frases = (13 * $index + 7) % count($frases);
    echo '<h2 style="color:#00C; margin-left:300px">'. $frases[$rand_frases] .'</h2>';
    Ответ написан
    1 комментарий
  • Хорошо ли написан класс БД?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    die('DB ERROR');
    Сразу нет! Класс не должен останавливать приложение, если произошла ошибка. Он должен бросать исключение, а что делать дальше должен решать клиентский код.

    никакой работы с БД не должно быть в модели

    В каком смысле это написано? Где это написано?

    Ухожу с синглтона

    На каждый запрос будете создавать отдельное подключение к БД? Там вообще то есть ограничение на количество открытых.

    Я не заметил особой разницы между работой с mysqli и с вашим классом. Инкапсуляция бинда параметров метод query только? Так унаследуйтесь от класса mysqli и напишите удобный метод для этого.

    И почему вы не берёте какую то готовую обёртку? Благо их написано тысячи!
    Ответ написан
  • Как разделить данные в функции array_column?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Ну как то так
    foreach ($names as $logo => $name) {
        ?><a href="#"><img src="<?= $logo ?>"><?= $name ?></a><?php
    }
    Ответ написан
    Комментировать
  • Как запустить массивную задачу на php?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Либо
    set_time_limit(0);
    либо запускайте в обход веб-сервера из консоли.
    Ответ написан
    2 комментария
  • Сортировка и вывод из двух массивов - как сделать?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Пишу с тела. Не проверял
    $i = $j = 0;
    while (!empty($Model) || !empty($Item)) {
        if ($element = array_shift($Item)) { ?><div class="element"><?= ++$i ?> <?= $element['name'] ?></div><?php }
        if ($element = array_shift($Item)) { ?><div class="element"><?= ++$i ?> <?= $element['name'] ?></div><?php }
        if ($element = array_shift($Item)) { ?><div class="element"><?= ++$i ?> <?= $element['name'] ?></div><?php }
        if ($spec = array_shift($Model)) { ?><div class="spec"><?= ++j ?><?= $spec['name'] ?></div><?php } 
    }

    Я постарался написать просто чтобы была понятна сама идея. Когда поймёте как это работает, можете добавить циклы для повторяющихся элементов и оформить код.
    Ответ написан
    Комментировать
  • Как подключить файл из корневой папки?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Ну давайте и я своё решение предложу:
    include './../folder2/b.php';
    Ответ написан
    Комментировать
  • Как можно изменить $this->input->post() в array_change_key_case($this->input->post(),CASE_LOWER) i и использовать $this->input->post()?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    1. Вы пытаетесь результату одной функции присвоить результат другой функции. Так работать не будет.
    2. Думается мне, что input не предоставляет методов изменения запроса, поэтому в вашем случае нужно сделать что то вроде этого:
    $post = array_change_key_case($this->input->post(),CASE_LOWER);

    А далее использовать $post вместо обращения к $this->input->post()
    3. Это Codeigniter?
    Ответ написан
  • Как получить Iframe который подгружается через JS?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Вообще странный вопрос.
    iframe загружается самим браузером без всяких JS, на основании параметра src. То есть Вам, для получения содержимого iframe необходимо достать из него ссылку
    https://123.ru/signin?widgetKey=16452abf721961a1728885bef033f28e&language=RU-RU&iframeId=auth-9e8cjizh-z8hn-7a24-w6cu-19pqe9cz&appId=632
    и загрузить с неё контент.
    Ответ написан
  • Как отдать на скачивание XML?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    header("Content-Disposition: attachment; filename=file.xml");
    Ответ написан
    Комментировать
  • Почему gmmktime и mktime возвращают одно и тоже?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Как вариант: время на сервере настроено вручную и выставлен часовой пояс "Гринвич".
    Ответ написан
    Комментировать
  • Странная переменная, PHP/WP. Как сменить тип в число из строки?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Вас не смутило string(6) "14704"?
    14704 - это 5 символов. Значит вначале есть какой то невидимый символ, который не даёт преобразовать число в int. Либо проверяйте что у вас в {{id}}, либо попробуйте перед преобразованием сделать переменной trim.
    Ответ написан
    2 комментария
  • Где здесь может быть ошибка?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    wR+UZDC4jjeL/qUOvIsofIWpZh8= - сигнатура бинарного представления хэша
    NDE3YTQ0ZTExYzBkYzlhNzViY2JlNzkzNDc2Mjg5NDcxYWMyYTU1ZA==
    - сигнатура текстового представления хэша
    Ответ написан
  • Как правильно вывести результат выполнения php?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    return $users;
    Вы возвращаете результат, а потом хотите ещё какие то действия выполнять. Не надо так!
    Ответ написан
    22 комментария
  • Могу ли я из post вытащить title страницы?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Есть шанс что в заголовке этого запроса будет поле HTTP Referer к которому можно получить доступ через $_SERVER['HTTP_REFERER']. Если cURL'ом запросить эту страницу, то, вполне возможно, там окажется html-код именно той страницы с которой пришёл запрос. Из этого html-кода уже можно вытащить title с помощью регулярок или библиотек типа DiDOM. Но я бы не стал уповать на этот способ, он очень не точный.
    Лучше дописывайте к action формы какой то параметр типа ?page_id=08132e5e и, принимая запрос, идентифицируйте страницу по этому параметру. А если это ваш сайт, то лучше вообще фиксируйте сессию пользователя при заходе и собирайте инфу.
    Ответ написан
    Комментировать
  • Почему картинка передаются через форму, а аудио файл нет?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    В настройках web-сервера есть параметр upload_max_filesize. Посмотрите, не ограничивает ли он у вас размер передаваемого файла.
    Ответ написан
    1 комментарий
  • Как получить значение из огромной функции, не выходя из нее?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Вам помогут static переменные функции.
    function foo() {
        static $bar;
    
        $bar++;
        retrurn $bar;
    }
    
    echo foo(); //1
    echo foo(); //2
    echo foo(); //3
    Ответ написан
  • Можно ли средствами php сделать из текста анимированное изображение?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Вот пример создания gif-изображения с использованием библиотеки Imagiсk
    $GIF = new Imagick();
    $GIF->setFormat("gif");
    
    for ($i = 0; $i < sizeof($_FILES); ++$i) {
        $frame = new Imagick();
        $frame->readImage($_FILES["image$i"]["tmp_name"]);
        $frame->setImageDelay(10);
        $GIF->addImage($frame);
    }
    
    header("Content-Type: image/gif");
    echo $GIF->getImagesBlob();

    Взято отсюда.
    А вообще вы и сами можете искать в интернете.
    Ответ написан
    2 комментария