• Как прочитать docx на PHP?

    @BATPYIIIKOB
    PHP, JS
    file_get_contents прочитает только кракозябры
    docx - по сути это архив с xml и т.д...
    https://github.com/PHPOffice/PHPWord - библиотека
    либо пишите собственный парсер.
    Ответ написан
    Комментировать
  • Почему возникает ошибка "Class not found"?

    @kikimarik
    Смотрите
    namespace App\Http\Controllers;
    Это объявляется пространство имен. А значит, что обращения к классам будут идти от него. Если вы хотите использовать класс из другого пространства имен, то у Вас 2 пути:

    1) Прописать после объявления пространства имен текущего класса использование того, что вам надо
    use Class\With\Namespace;
    2) При попытке обратиться к классу прописываете вызов вместе с пространством имен
    $obj = new \Class\With\Namespace;
    $static = \Class\With\Namespace::staticMethod();
    Ответ написан
    Комментировать
  • Почему возникает ошибка "Class not found"?

    kspitfire
    @kspitfire
    Webdev: PHP (Symfony, Laravel), JS (Vue.js), Go.
    Потому что, по-хорошему, надо импортировать фасад DB сначала — в вашем пространстве имён не определено, что такое DB:

    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    Ответ написан
    Комментировать
  • Почему возникает ошибка "Class not found"?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    \DB::table || use DB;
    Ответ написан
    Комментировать
  • Как найти часть строки после "@", и вместе с @ взять в тег?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    <?php
    
    function replaceLogic($match) {
        return "<tag>$match[0]</tag>";
    }
    
    $input = 'Вот арбуз - @ho_ho_ho какой-то текст @ho_ho_ho2';
    $output = preg_replace_callback('/@[0-9a-z_]+/u', 'replaceLogic', $input);


    Живой пример
    Ответ написан
    Комментировать
  • Как вывести данные из json в php страницу?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    $json = '{"servers":{"www:19132":{"ping":0,"names":[""],"motd":"aMCraftf.pw lv3.0 bvk.com\/mcraft_pw","type":"SMP","game":"MINECRAFTPE","version":"v1.14.0","plugins":"PocketMine-MP 3.11.4: ItemCloud 1.3.1; MineReset 3.3.0; FormAPI 1.3.0; SkyBlock 3.0.0; MultiWorld 1.5.2; AllSigns 1.0.12; WelcomeMessage 1.0.0; BuilderTools 1.2.0-beta2; MapImageEngine 1.1.3; AutoMineReset 0.3.4; PurePerms 1.4.2; DevTools 1.13.5; CompassXYZ 1.0; ChatMuffler 1.0.2; EconomyPShop 2.0.3; Broadcaster 1.5; MOTDShuffle 1.1.7; essentialsTP 1.2.2; BadWordBlocker 1.2.8; SimpleAuth 2.1.3; KillHealth 1.0.0; LightningDeath 1.0.1; StarterKit 1.0.1; MysteryCrate 9.1.1; Parkour 1.5.7; Texter 3.4.4; AuthUI 1.0.0; Slapper 1.5.2; SexGuard 1.1.9; Jail 1.3.0; PiggyCustomEnchants 2.0.4; PureEntitiesX 0.6.3; ScoreHud 5.1.1; MSpawns 2.2; AdvancedJoin 1.1.0; EconomyAPI 5.7.2; PureChat 1.4.11; AdvancedKits 5.3.0; EconomySell 2.0.10; KillMoney 1.0.0-stable; CustomShopUI 4.0.5; PiggyCustomEnchantsShop 1.3.1; EconomyLand 2.1.2; EconomyJob 2.0.5; PlayerHead 1.3; MagicTelePortal 1.3.5; TopMoney 1.0.0; KisayolTP 2.5; FloatingText 1.0.0; SlapperRotation 1.2.1; ExampleUI 1; PCFly 3.0.0; TicTacToe 0.1.5; MiniBosses 2.0.2; 1vs1 1.0.1; VanishV2 1.4; FactionsPro 1.3.20; SkyWars 1.2.0; SkyWars-Reward 1.1.2","map":"Castle","online":"0","slots":"200","status":"online","address":"191.168.0.01:19132","percent":0}},"online":0,"slots":200,"percent":0,"timerec":"25 \u044f\u043d\u0432\u0430\u0440\u044f \u0432 13:53","record":942,"recordday":0,"timerecday":"01:22"}';
    json_decode($json, true)['online'];
    json_decode($json, true)['record'];

    Документация на json_decode.
    Ответ написан
    2 комментария
  • Функция mail php. Почему не приходят письма или письма попадают в спам?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Причина попадания в спам связана с хостингом и почтовым сервером. Используйте PHPMailer, чтобы избегать этих проблем сейчас и в будущем
    Ответ написан
    Комментировать
  • Регулярные выражения. Как посчитать количество значений разделенных символом?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    живой пример.
    Для разбития по разделителю достаточно функции explode, чтобы отфильтровать пустые элементы, которые возникают из-за последней запятой в строке, нужно пользоваться array_filter без колбека.
    Ответ написан
    Комментировать
  • Как сжать данные при загрузке через AJAX?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Включите сжатие на сервере для ваших скриптов, gzip на тексте может дать разницу в 5-6 раз
    Ответ написан
    3 комментария
  • Можно ли не прописывать переменные в функцию если их нет?

    ну так задай параметры по дефолту
    function delitem($iditem, $login, $kolvo, $linefile, $catalog, $effect34 = null, $effect33 = null)
    Ответ написан
    3 комментария
  • Сложный и интересный проект для новичка?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    ## Анонимный чат с темами для обсуждения деликатных офисных проблем
    Иногда хочется обсудить что-то с коллегами в офисе, но не хочется смущать их или показывать лишнюю инициативу.
    Например кто-то не смывает в туалете или слишком громко орёт и сам того не замечает. Может быть кто-то слишком интенсивно пользуется парфюмом.
    - Анонимность
    - Постоянная ссылка на чат, тему или дерево чатов
    - ссылки в виде QR-кодов
    - голосовалка
    - закрепленные посты

    ## Сайт checklist
    Веб-сервис и мобильное приложение для краудсорсинга чеклистов для всего: зарегать ИП, получить визу, что делать при ДТП, как влезть в ипотеку, как вылезть из неё, чем заняться с ребенком на выходных (N-ле

    - Коллекция чек-листов снабженных тегами, доступная для краудсорсинга.
    - Краудфандинг составления и поддержки нового листа.
    - Фильтрация чек-листов.
    - Фильтрация пунктов.
    - Тегирование пунктов.
    - Графовые алгоритм обхода чек-листа.
    - Мастер обхода чек-листа.
    - Отчет по чек-листу.
    - Вложенные чеклисты, гиперссылки между разными листами.
    - Параметризация.
    - Экспертная система, логические связи (расширенный режим).

    Примеры:
    - Что делать при ДТП
    - Открыть ИП
    - Осмотр авто при покупке (подветки для разных конкретных моделей)
    - Первая помощь при...
    - Диагностика инсульта
    - Зомби-акопалипсис: как приготовиться
    - Атомный взрыв неподалёку - что делать
    - Планетарная катастрофа - как выживать
    - Поход выходного дня - что взять
    - Подготовка авто к поездке
    - Путешествие: Алжир (виза, прививки, документы, отели, транспорт)
    - Как влезть в ипотеку
    - Как вылезть из ипотеки
    - Как быстро заработать (во все тяжкие)
    - Покупка квартиры (на что обратить внимание)
    - Самостоятельное строительство дома (общий план)
    - Чем заняться с ребёнком N-лет
    - Как отметить новый год
    - Что интересного в районе <пос. Майский>
    - Номера телефонов и документы в автомобиле

    ## Эротический краудфандинг
    Интернет ресурс, где девушки могут делать крауд-фандинговые кампании

    - Крауд-фандинговая кампания по сбору средств на проект
    - оформление проекта (доказательство личности в виде фото с сигном, некое обещание, порог недовольных результатом, целевая сумма)
    - посетители анонимно финансируют проект в биткоинах
    - если кол-во лайков среди профинансировавших (в соответствии с весами) > порогового, учредитель получает сумму за вычетом комиссии
    - если кол-во лайков не превысило порог, сумма возвращается обратно инвесторам

    ## Простой открытый сервис для обмена сообщениями
    - HTTP API, Web-sockets
    - p2p rtsp
    - опциональное end-to-end шифрование
    - хранение истории на клиентах
    - возможность использования нескольких серверов
    - возможность использования альтруистичных клиентов для проксирования трафика p2p
    - поиск узлов на основе блокчейн технологий и DHT таблиц

    ## Онлайн-журнал путешествия
    - публикация трека в реальном времени
    - комментарии путешественника и фолловеров
    - стримы (аудио, видео, фото)
    - отложенная загрузка
    - журнал(расходы, чек-поинты, расписания, цены, погода)
    - FAQ
    - голосовалка

    ## Поэтический онлайн редактор
    - выбор стопа, стиля и жанра
    - шаблон с плейсхолдерами, разбивающий текст на слоги
    - облако рифм
    - подражающий автогенератор
    - многосегментный словарный банк (дифференциально-слоистая древовидная структура, своя специфика в верхнем слое, поэлементное ранжирование сегментов)
    - тезаурус
    - словарь сочаетаемости
    - N-граммы поэзии по авторам и стилям
    - корпус поэзии
    Ответ написан
    13 комментариев
  • Как заменить по шаблону значения, которые находятся в другом массиве?

    Compolomus
    @Compolomus Куратор тега PHP
    Комполом-быдлокодер
    $user = [
        'id' => 1,
        'name' => 'Ivan Ivanov',
        'role' => 'developer',
        'salary' => 100
    ];
    
    $apiTemplatesSet1 = [
        '/api/items/%id%/%name%',
        '/api/items/%id%/%role%',
        '/api/items/%id%/%salary%'
    ];
    
    class Invoker
    {
        private $data;
    
        public function __construct(array $data)
        {
            $this->data = $data;
        }
    
        public function __invoke(array $key): string
        {
            return $this->data[$key[1]];
        }
    }
    
    $function = new Invoker($user);
    
    $result = array_map(function ($key) use ($function)
    {
        return preg_replace_callback('#%(.*)%#isU', $function, $key);
    }
    , array_values($apiTemplatesSet1));
    
    echo '<pre>' . print_r($result, true);

    https://3v4l.org/DbIAi
    5e32d4911eae6354134814.png
    Ответ написан
  • Почему не работает кэширование запросов?

    myks92
    @myks92 Куратор тега Yii
    Нашёл решение — пометь вопрос ответом!
    1.
    // Кэширование запросов для DAO
    // Возвращает ассоциативный массив с именами столбцов и значений
    $categories = Yii::$app->db->cache(function () {
      return Yii::$app->db->createCommand('SELECT * FROM `category`')->queryAll();
    });
     
     
    // Кэширование запросов для ActiveRecord (на 1 час)
    // Возвращает объект
    $categories = Category::getDb()->cache(function (){
        return Category::find()->all();
    }, 3600);


    2. Кэширование производится при необходимости, а не ради кэширования. У вас проблемы с нагрузкой? Зачем кэшировать?)
    Ответ написан
    4 комментария
  • Как сравнить массив с базой данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Делай trim перед запросом.
    Но вообще конечно бедный заказчик...
    Ответ написан
    3 комментария
  • Как понять што не так в куске кода php?

    DevMan
    @DevMan
    много чего не так: только в первой строке минимум две ошибки, дальше ковырять неохота.
    читайте про экранирование строк.

    """ – ошибка, должно быть "\"" или '"'
    "\" – ошибка, должно быть "\\"
    и все такое
    Ответ написан
    1 комментарий
  • Комментарии в коде?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    Не учите меня программировать.
    Комментарии лишними не бывают.
    5e30e1be57646442252796.gif
    // Когда я начинал это писать, только Бог и я понимали, что я делаю
    // Сейчас остался только Бог


    // иногда мне кажется, что компилятор игнорирует все мои комментарии


    // пьян, исправить позже

    // Магия. Не трогать.

    /**
     * Всегда возвращает true.
     */
    public boolean isAvailable() {
        return false;
    }
    Ответ написан
    2 комментария
  • Комментарии в коде?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Давайте перестанем путать комментарии в коде и документацию. Если первое предназначено для объяснения как это вообще работает, то второе ставит перед собой цель описания интерфейса взаимодействия, краткие описания с примерами использования и другие вещи, позволяющие, например, автоматически генерировать документацию
    Ответ написан
    Комментировать
  • Как правильно перевернуть массив?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    https://www.php.net/manual/ru/function.array-rever...
    Ключевое слово - возвращает
    Ответ написан
    Комментировать
  • Есть идеи как отправить кликабельный телефон с формы на почту?

    @Giperoglif
    отправлять письмо в html, а там:
    <a href="tel:79999999999">+7 (999) 999-99-99</a>
    Ответ написан
    Комментировать