Задать вопрос
Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
  • Как обновлять данные каждую секунду в базе данных пока пользователь находится на странице?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Забыть про эту нелепую фантазию и заняться чем нибудь полезным.
    Ответ написан
    Комментировать
  • Почему выводит пустой массив из объекта в PHP, MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    тебе этот код выводит array(0) { } потому что в таблице testformyself, которая располагается в БД, с которой соединяется этот РНР скрипт, нет записей.

    Проблема в том, что у тебя отключены сообщения об ошибках РНР. Чего делать ни в коем случае нельзя.
    Надо во-первых, включить режим выдачи ВСЕХ ошибок (E_ALL), а во-вторых - включить отображение ошибок на экране, что удобно для режима разработки.
    Ответ написан
  • Как это работает?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это называется autoload.
    тупейшая магия которая по имени класса пытается заинклюдить файл, по заданным тобой правилам
    кури spl_autoload_register
    Ответ написан
    Комментировать
  • Как устранить ошибку?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    во втором варианте ты require забыл, молодец
    а вообще попробуй обновить композер, новая версия лучше работает с памятью
    Ответ написан
    Комментировать
  • Приведение строки в одинарных ковычках к двойным?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Господи, не нужно ничего ни к чему приводить.
    Надо просто перестать использовать функцию mysqli_real_escape_string. Надо перестать быть дикарём, который украшает нижнюю часть тела перьями, потому что так предки делали.
    А начать хоть немного думать. И понимать смысл своих действий.
    И тогда не придется снимать перья с одно места функцией stripcslashes
    Ответ написан
    Комментировать
  • Как в redbean заменить с id на кастомный id?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не использовать идиотскую библиотеку редбин.
    C id это ещё цветочки - она тебе таблицу вообще изуродует, если ты передашь неподходящие, по её мнению данные.
    Ответ написан
    Комментировать
  • Почему после установки не совпадает структура папок Laravel?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    гайды-то небось от 5 версии, если вообще не 4-й
    исправить просто - смотреть не "гайды", а документацию
    Ответ написан
    6 комментариев
  • Что делать с кодировкой тела сообщения imap_body?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Курить multipart/form-data
    Ну и сразу накуривается https://github.com/php-mime-mail-parser/php-mime-m...
    Ответ написан
  • Как изменить размер картинки и загрузить в папку?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Надо почитать что делает функция imagecopyresized.
    а потом почитать, как сохранить результат ее работы в файл
    Ответ написан
    Комментировать
  • Как вывести подобный json массив из mysql с помощью php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Наверное, сначала раскодировать джейсон, который ты запихал зачем-то в бд?
    Ответ написан
  • Маршрутизация, как правильно вернуть изображение?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Минусы в том что на такую ерунду как показ картинки расходуется такой ценный ресурс как тред РНР-FPM.
    Не говоря уже о том, что "приводить к стандартам" - это, как я понимаю, и вовсе конкретная нагрузка на процессор и память

    а главное непонятно, кто мешает запустить один раз скрипт который переберет все картинки в папке и "приведет к стандартам" один раз.

    В принципе можно сделать маршрут, но не для пхп, а для нжинкса.
    который будет проверять наличие файла в папке с нормальными изображениями, и при отсутствии перекидывать на пхп скрипт, который "будет приводить к стандартам", отдавать, и записывать в папку к нормальным.
    Ответ написан
    2 комментария
  • Как включить файл в функции?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    НЕ СЛЕДУЕТ вообще заниматься такими вещами, как включить файл в функции. кроме совсем редких специальных случаев. Файл надо прочитать отдельно, и потом передать его содержимое в функцию в качестве параметра.

    Кроме этого, надо в принципе стараться писать осмысленный код и не совершать хаотичных телодвижений. Например, не пытаться подключить файл два раза, причем один раз - с заведомо неверным путём.

    поэтому данный код переписать так

    class ClassName 
    {
        protected $config;
        public function __construct($config)
        {
            $this->config = $config;
        }
        public function FunctionName()
        {
        }
    }
    $config = require __DIR__."../config.php";
    $obj = new ClassName($config);
    $obj->FunctionName();
    Ответ написан
    Комментировать
  • Как более производительней вносить и выводить из базы данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Оставь всё как есть, ничего руками не трогай.
    Ответ написан
    2 комментария
  • Как я могу улучшить свой php код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я остановлюсь на одном аспекте этого кода, но совершенно анекдотическом.

    Такое ощущение что все пэхапешники практически поголовно - потомки контрабандистов. Ну или мешочников, которые в китае покупают сумку за три копейки, везут в Хабаровск, вешают ценник "Луй Витон" и продают за пять. И даже если купят Настоящий Louis Vuitton, то все равно сдерут бирку и нацарапают шариковой ручкой другую. И это совершенно не укладывается в голове.

    Главной своей задачей он почему-то считают взять сообщение об ошибке, которое УЖЕ есть в РНР - актуальное, информативное, подробное, полезное, содержащее всю информацию, которая нужна для исправления проблемы... и замазать его шариковой ручкой, выдав вместо него бессмысленные каракули, которые никому не нужны.

    То есть они одновременно совершают бессмысленную работу - кропотливо создают сообщение об ошибке, когда оно и так уже есть, и при этом ещё и занимаются вредительством - удаляя всю полезную информацию которая могла бы помочь в исправлении проблемы.

    Этот твой код выглядит так, как будто тебя кто-то заставил выучить правило - "любой блок кода надо завернуть в try catch!" Причём доходит до анекдота - если уж совсем не знаешь, что делать внутри catch... то тупо делаешь throw. Зачем тогда вообще делать try? "А шоб було!".

    Вот взять самую первую проверку, ! file_exists($fileName). Если её выкинуть, то при попытке открыть несуществующий файл ты получишь подробное сообщение - КАКОЙ файл пытаешься открыть, и ПОЧЕМУ конкретно это не получилось. То есть сообщение об ошибке УЖЕ есть, и в миллион раз информативнее. И какой смысл повсюду втыкать file_exists - ЗАГАДКА. Загадка почище тайны египетских пирамид. Там хотя бы понятно, зачем их городили.

    То же самое касается абсолютно всех других "проверок" на ошибки в этом коде. Пишется специальный код, вся задача которого - взять исходное, информативное и полезное сообщение об ошибке, стереть его, и выдать никому не нужную белиберду.

    Самое забавное, что все писатели, которые старательно выводят "Error saving language", совершенно не представляют себе - для кого они это делают. Для пользователя? Если он даже и увидит это сообщение (за что надо отдельно по рукам бить), то он и так знает, что проблема с сохранением языка - он этим и занимался. Не говоря уже про 'Unable to open file'. Какое филе? Почему унабле? Что с этим делать?
    Для программиста? Вместо подробного системного сообщения об ошибке читать эти загадки, серьёзно?

    В общем выкидывай все эти бессмысленные проверки. Ты работаешь с фреймворком, а не клепаешь на коленке. фреймворк писали не дураки, он прекрасно обработает все ошибки сам.

    И забудь ради бога это дурацкое правило, оборачивать любой блок кода в трай кетч. Вместо него запомни другое:

    Надо обязательно различать пользовательские и системные сообщения об ошибках:
    • пользовательские выдавать пользователю, только тогда когда он может что-то сделать. Например: проверить файл на валидность и выдать пользователю сообщение что он прислал не CSV, а какую-то ерунду. Но это НЕ делается путем выброса стандартного исключения. Это делается либо на этапе валидации входящих данных, либо - выбросом специального исключения, которое потом можно поймать в контроллере и вывести пользователю.
    • системные вообще никак не трогать руками. А дать фреймворку самому их обработать. На этапе разработки он выведет подобное и красивое сообщение об ошибке с кучей информации, а на боевом сервере аккуратно запишет ошибку в лог и покажет пользователю стандартную страничку "что-то пошло не так".



    Не принимай резкость этого текста персонально - просто это реально проблема с писателями на пэхапе в целом.
    Ответ написан
  • Можно ли полноценно заменить bat или bash другим языком?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Надо сначала определиться, что ты имеешь в виду - язык на котором скрипты пишутся - он вообще может быть любой, лишь бы интерпретатор был в системе. по умолчанию в линуксе можно сразу на десятке писать

    или речь о самой командной оболочке.
    но в этом случае смысл несколько ускользает.
    но в принципе возможно. в линуксе оболочки вообще принято менять как перчатки.
    как минимум есть csh, синтаксис которой напоминает С
    сейчас погуглил - вроде есть Xonsh и ipython

    с виндой думаю сложнее, тем кроме цмд и АС вряд ли можно что-то прикрутить
    Ответ написан
    6 комментариев
  • Сколько и каким образом "отлавливать" исключений (ошибок) при запросе?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Во-первых и в самых главных - не заниматься фигней и не делать бессмысленную работу.
    Но для этого надо немного понимать, как работают веб-приложения.
    В частности, что "500 ошибка" - это и есть та страница, на которой пишут "Что то пошло не так, повторите позже."
    Соответственно находим шаблон этой страницы и правим под себя.

    То есть ошибки, после которых продолжение работы бесполезно, вообще никак не отлавливать не надо. Ларавель сама за тебя все отловит и напишет. Потому что в ней уже все оформлено, и отлов и обработка. И не надо туда лезть руками.

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

    Если какая-то не отлавливается - надо смотреть какая и почему. Если самостоятельно не получается - привести полный текст ошибки и код отлова в своем вопросе, а не бубнить "я получаю, а мне надо, а они ниловят"

    В целом же стараться "отлавливать и оформлять" как можно меньше. И стараться понимать, что ты работаешь с современным фреймворком, в котором все нужное уже есть, а не по-старинке говнякаешь на коленке
    Ответ написан
  • Почему не выводит значение одного столбца с бд?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Судя по частоте обращений и степени понимания сути возникающих проблем - вам на Фриланс.
    Вот там как раз ссылочка на гуголь драйв будет более чем уместна.
    Ответ написан
    Комментировать
  • Почему выводится предупреждение Warning: Missing argument?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Эта Очень Сложная проблема относится к области арифметики.
    Доставай свои счетные палочки, сейчас будем её решать.

    Идем в определение функции setTypeVehicule() и считаем сколько в неё надо передать параметров:
    $libelle, один
    $prix, два
    $pric, три
    $image четыре!

    дальше идем в вызов этой функции, и считаем, сколько на самом деле передаём
    $_POST['libelle_type_vehicule'], один
    $_POST['price_vehicule'], два
    $newfilename три!

    Три не равно четыре, а это значит что одного параметра не хватает
    Ответ написан
    Комментировать
  • Может ли Tesseract кушать столько памяти?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Может
    Ты уже задавал этот вопрос
    Ответ написан