Здравствуйте. Знаю что делается довольно просто, скорее всего все с помощью preg_replace_callback, но тем не менее, пытаюсь разобраться. Что нужно: в определенном файле на сервере (например, в файле 1.txt) среди всего текста происходит поиск выражения (по формату даты), например "любые_символы_ДАТА_любые символы". Формат самой даты такой: 161123 После того как это выражение найдено в этом файле - в нем и именно в этом выражении происходит замена данных, а именно на сегодняшнюю актуальную дату в таком же формате: 171123 В итоге получается, что был разного рода текст, среди которого было выражение "любые_символы_161123_любые символы", и стало так: все прежнее осталось, кроме выражения "любые_символы_161123_любые символы", которое было заменено на "любые_символы_171123_любые символы"
В чём вопрос? У тебя в тексте только повествовательное наклонение. На всякий случай: заменить конкретный фрагмент текста на другой можно, например, функцией str_replace() Всегда начинай с официальной справки: https://php.net/str_replace
Вот такое решение нашлось: PHP: <?php $data_to_write = "abc"; $file_path = "public_html/1.txt"; $file_handle = fopen($file_path, 'w'); fwrite($file_handle, $data_to_write); fclose($file_handle); ?> <?php $data_to_write = date('dmy'); $file_path = "public_html/1.txt"; $file_handle = fopen($file_path, 'a'); fwrite($file_handle, $data_to_write); fclose($file_handle); ?> <?php $data_to_write = "xyz" . $_POST['subject']; $file_path = "public_html/1.txt"; $file_handle = fopen($file_path, 'a'); fwrite($file_handle, $data_to_write); fclose($file_handle); ?>
@Emiles пожалуйста оформляй код в ббкоды [ code ] или [ php ]. один раз я сделал это за тебя, видишь насколько стало лучше?!
Добрый день! В начале Вы опубликовали сообщение "preg_replace_callback" о том, что в тексте необходимо заменить "любые_символы_ДАТА_любые символы" Видимо, в нём под "Формат самой даты такой: 161123" подразумевается пример даты в формате "dmy" Затем Вы показали решение, которое нашлось. Однако, Ваш скрипт просто записывает файл с текстом и текущей датой. Уточните, пожалуйста, есть ли у Вас вопросы по этой теме. Удачи!
В решении, которое нашлось - результат в итоге выглядит так: abc"текущая дата"xyz - это подходит для решения задачи. Вместо замены текста внутри создается текст по новой с его постоянным содержимым, но только дата внутри этого текста меняется на актуальную. Добавлено все это в cron, поэтому "текущая дата" внутри обновляется при необходимости (после запуска cron). Данная задача решена, спасибо. --- Добавлено --- Вижу, ок, хорошо. Спасибо)
Интересное решение. Вы запускаете скрипт из cron и в нём записываете в файл abc"текущая дата"xyz Затем вызывается скрипт, который читает этот файл. Почему нельзя обойтись без чтения файла, а просто создать в этом скрипте строку? PHP: $str = "abc".date("dmy")."xyz" ;
Да, и так тоже было. Так даже проще, спасибо. Изначально была задумка разделить процессы, так как там массивы неизменных текстов довольно большие, поэтому было так оформлено для наглядности. В итоге оставлено так: PHP: <?php $str = "abc".date("dmy")."xyz" ; $file_path = "public_html/1.txt"; $file_handle = fopen($file_path, 'w'); fwrite($file_handle, $str); fclose($file_handle); ?> Или вы про то, что можно еще оптимизировать код?
Подозреваю, что CRON тут не нужен. На входе у Вас один длинный текст, к нему добавляется текущая дата и после неё добавляется другой длинный текст. Эти тексты постоянные и меняется только дата? Что происходит дальше с этой строкой и где она обрабатывается? Если не секрет, напишите немного подробнее про Ваши процессы. Может быть тогда удасться оптмизировать код