2010-07-23 4 views
0

Donc j'essaye de créer cette fonction qui remplace un certain symbole par autre chose. J'allais utiliser ereg_replace mais j'ai vu qu'il a été déprécié en 5.3. Pouvez-vous me donner des suggestions sur ce qu'il faut utiliser à cette fin. Pour être plus précis, je veux créer une fonction qui analyse un courriel qui remplace un certain symbole dans l'e-mail avec la date actuelle.php ereg_replace en php 5.3

<date-1> 

sera la date d'hier et

<date> 

sera la date d'aujourd'hui.

Merci!

Répondre

7

Utilisez plutôt preg_replace(). Cette page met en évidence les différences: http://php.net/manual/en/reference.pcre.pattern.posix.php

Et comme pour votre problème, cela devrait faire:

$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);