@devidwm

Как указать кодировку для задачи cron?

Коллеги, всем привет!

Недавно столкнулся с такой проблемой. При запуске PHP скрипт через браузер, функция транслитерации кириллицы в латиницу срабатывает, а при поставке задачи на крон - нет.
Объясню подробнее:
Есть скрипт, которые подгружает инфомацию к уже созданным на сайте товарам. Сравнение идет через символьный код. То есть, скрипт берет базу, из который мы данные парсим, названия из этой базы транслитерирует с кириллицы в латиницу, создавая символьный код (если название из латиницы, соответственно, транслитерации не происходит). Далее символьный код сравнивается с имеющимися на сайте, и если есть совпадение идет склейка.

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

В TimeWeb (где собственно и располагается проект), мне сообщили, что "Для задачи крон так же можно указать кодировку и прочие PHP параметры. Имеет смысл попробовать запустить скрипт, указав кодировку". От сюда вопросы:
1) Как указать кодировку для задачи крон? (не знаком совсем с серверным программированием, увы не разбираюсь в этом)
2) Ну и поддержка TW часто давала мне плохие советы. Может кто-нибудь выскажет свою экспертизу, может такая проблема решается иначе?

Спасибо всем заранее :)
  • Вопрос задан
  • 464 просмотра
Пригласить эксперта
Ответы на вопрос 2
А как конкретно запускается скрипт по крону? Есть ведь два способа как это сделать:
1. с помощью PHP CLI. Команда типа "/usr/bin/php70 /var/www/website/script.php"
2. с помощью wget или curl. Типа /usr/bin/curl "website.ru/script.php" 1> /dev/null 2> /dev/null

Второй способ - полная имитация запуска в браузере. Это ответ на вопрос "может ли такая проблема решается иначе". Может.
Первый способ не учитывает тех параметров, которые у вас заданы в конфиге Апача и в файле .htaccess. Поэтому для запуска первым способом вам все их нужно задать явно в скрипте, как верно заметил Артур Э..
Ответ написан
Комментировать
amark
@amark
rush less, feel more
просто в начале (первой строчкой после <?php ) указать setlocale
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы