Ваш скрипт выглядит в целом правильно, но есть несколько моментов, которые стоит проверить и улучшить:
Путь к файлу: Убедитесь, что путь к файлу указан правильно. В вашем случае путь указан как /public_html/public_html/feed_double_happiness.xml, что может быть ошибкой. Обычно путь к файлу в корневой директории сайта будет /public_html/feed_double_happiness.xml.
Права доступа: Убедитесь, что у скрипта есть права на чтение и запись файла. Если прав недостаточно, скрипт не сможет изменить файл.
Отладка: Добавьте дополнительные сообщения для отладки, чтобы понять, на каком этапе происходит ошибка.
Регулярное выражение: Убедитесь, что регулярное выражение правильно находит дату и время в вашем файле.
Вот обновленный скрипт с дополнительными проверками и отладочными сообщениями:
<?php
$feed_path = '/public_html/feed_double_happiness.xml'; // Убедитесь, что путь правильный
if (!file_exists($feed_path)) {
echo "Файл не найден: $feed_path";
exit;
}
$feed_content = file_get_contents($feed_path);
if ($feed_content === false) {
echo "Не удалось прочитать файл: $feed_path";
exit;
}
$updated_feed_content = preg_replace('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', date('Y-m-d H:i:s'), $feed_content);
if ($updated_feed_content === null) {
echo "Ошибка при обновлении содержимого файла.";
exit;
}
$result = file_put_contents($feed_path, $updated_feed_content);
if ($result === false) {
echo "Не удалось записать обновленное содержимое в файл: $feed_path";
exit;
}
echo 'Дата в yml-фиде успешно обновлена.';
?>
Дополнительные шаги:
Проверка прав доступа:
Убедитесь, что файл feed_double_happiness.xml имеет права на запись. Вы можете изменить права доступа к файлу с помощью команды chmod:
chmod 666 /path/to/feed_double_happiness.xml
Проверка cron-задачи:
Убедитесь, что cron-задача настроена правильно и выполняется. Вы можете проверить логи cron, чтобы убедиться, что задача выполняется и не возникает ошибок.
Логи:
Добавьте логирование в файл, чтобы отслеживать выполнение скрипта:
file_put_contents('/path/to/log.txt', date('Y-m-d H:i:s') . " - Скрипт выполнен\n", FILE_APPEND);
Если после всех этих шагов проблема не решится, попробуйте выполнить скрипт вручную через командную строку, чтобы убедиться, что он работает вне cron-задачи. Это поможет изолировать проблему и понять, связана ли она с cron или с самим скриптом.