php ereg_replace в php 5.3 - PullRequest
       2

php ereg_replace в php 5.3

0 голосов
/ 23 июля 2010

Итак, я пытаюсь создать эту функцию, которая заменяет определенный символ чем-то другим. Я собирался использовать ereg_replace, но я увидел, что он устарел в 5.3. Ребята, можете ли вы дать мне предложение, что использовать для этой цели.

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

<date-1> 

будет вчерашней датой, а

 <date>

будет сегодняшней датой.

Спасибо!

1 Ответ

7 голосов
/ 23 июля 2010

Используйте взамен preg_replace(). На этой странице выделены различия: http://php.net/manual/en/reference.pcre.pattern.posix.php

А что касается вашей конкретной проблемы, это должно сделать:

$string = 'test <date> test2 <date-1> test3 <date+3>';

echo preg_replace_callback('#<date(?:([+-])(\d+))?>#', function($match) {
    if (!isset($match[1])) {
        return date('Y-m-d');
    }
    return date('Y-m-d', strtotime(sprintf('%s%d days', $match[1], $match[2])));
}, $string);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...