Задать вопрос
YardalGedal
@YardalGedal
yeah boy

Почему cron не читает файл?

Вот такой у меня есть код. Читает последние 5 топиков в сообществе и отсылает мне последнее сообщение из них, если оно ещё не было отправлено. Я как порядочный алешка чтобы не морочиться пишу просто в файл и все. Приведу лишь часть кода, остальная часть к вопрсоу отношения не имеет :)
<?php
...
for($i = 1; $i <= 5; $i++) {
$offset = $topics['response']['topics'][$i]['comments'] - 1;
$is1 = "https://api.vk.com/method/board.getComments?access_token=".$token."&group_id=GID&topic_id=".$topics['response']['topics'][$i]['tid']."&offset=".$offset."&count=1";
$topics1 = json_decode(file_get_contents($is1),true);
echo $topics1['response']['comments'][1]['date']."\r\n";
$t = $topics['response']['topics'][$i]['tid'];
echo file_get_contents("vk/".$t.".txt");
if($topics1['response']['comments'][1]['date'] != file_get_contents("vk/".$topics['response']['topics'][$i]['tid'].".txt")) {
file_put_contents("vk/".$topics['response']['topics'][$i]['tid'].".txt",$topics1['response']['comments'][1]['date']);
...
?>


Суть в том, что при попытке запуска кода из браузера он исправно проверяет файл и не отправляет мне сообщение, если unix-метка времени записанная в файл не равна полученной мной из vk api метке.
А вот когда срабатывает крон начинается всё самое интересное -- он просто каждый раз отправляет мне сообщение не видя файла, в который я пишу FPC'ом.
Вот цитата из логов крона:
1422817926
Warning: file_get_contents(vk/31014373.txt): failed to open stream: No such file or directory in /home/u850898830/public_html/board.php on line 15
  • Вопрос задан
  • 2699 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 3
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Дело, скорее всего, в том, что рабочая папка для крона '/home/u850898830/'
добавьте в начало скрипта:
chdir('/home/u850898830/public_html/');
Ответ написан
@Konkase
Нужно указывать полный путь до файла или чрутиться в директорию перед выполнение сценария или добавлять директорию в переменную окружения в кроне.
Ответ написан
Комментировать
@redlable47
У вас путь относительный"vk/..."
при выполнении из крона рабочий каталог другой, а согласно вашему пути скрипт ищет файл в рабочей директории, нужно либо использовать абсолютный путь, либо указать рабочей нужную директорию
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽