Здравствуйте.
Знаю что делается довольно просто, скорее всего все с помощью 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»; ?> <?php $file_path = «public_html/1.txt»; ?> <?php $data_to_write = «xyz» . $_POST[‘subject’]; $file_path = «public_html/1.txt»; ?>
@Emiles пожалуйста оформляй код в ббкоды [ code ] или [ php ]. один раз я сделал это за тебя, видишь насколько стало лучше?!
Добрый день!
В начале Вы опубликовали сообщение «preg_replace_callback» о том, что в тексте необходимо заменить
«любые_символы_ДАТА_любые символы»
Видимо, в нём под «Формат самой даты такой: 161123» подразумевается пример даты в формате «dmy»Затем Вы показали решение, которое нашлось.
Однако, Ваш скрипт просто записывает файл с текстом и текущей датой.
Уточните, пожалуйста, есть ли у Вас вопросы по этой теме.Удачи!
В решении, которое нашлось — результат в итоге выглядит так:
abc»текущая дата»xyz — это подходит для решения задачи.
Вместо замены текста внутри создается текст по новой с его постоянным содержимым, но только дата внутри этого текста меняется на актуальную.
Добавлено все это в cron, поэтому «текущая дата» внутри обновляется при необходимости (после запуска cron).
Данная задача решена, спасибо.
— Добавлено —Вижу, ок, хорошо.
Спасибо)
Интересное решение. Вы запускаете скрипт из cron и в нём записываете в файл abc»текущая дата»xyz
Затем вызывается скрипт, который читает этот файл.
Почему нельзя обойтись без чтения файла, а просто создать в этом скрипте строку?PHP:
Да, и так тоже было. Так даже проще, спасибо.
Изначально была задумка разделить процессы, так как там массивы неизменных текстов довольно большие, поэтому было так оформлено для наглядности.
В итоге оставлено так:PHP:Или вы про то, что можно еще оптимизировать код?
Подозреваю, что CRON тут не нужен.
На входе у Вас один длинный текст, к нему добавляется текущая дата и после неё добавляется другой длинный текст.
Эти тексты постоянные и меняется только дата?
Что происходит дальше с этой строкой и где она обрабатывается?
Если не секрет, напишите немного подробнее про Ваши процессы.
Может быть тогда удасться оптмизировать код