- 1
 - 2
 - 3
 - 4
 - 5
 - 6
 - 7
 - 8
 
                        preg_match('/(\d+)-(\d+)-(\d+)/i', date('d-m-Y'), $match);
ob_start();
echo (($match[1] == 30 || $match[1] == 31)?'01':(($match[2] <= 10)?'0':'').''.(++$match[1])).'.'; 
echo ((!$match[2][1])?'0':''); 
echo (($match[1] == 30 || $match[1] == 31)?++$match[2]:$match[2]); 
echo '.'.$match[3];
$rdate = ob_get_contents();
ob_end_clean();
                                     
        
            Досталось в наследство...
По алгоритму $rdate должна содержать текущее число следующего месяца в формате date('d.m.Y'). Мало того, что способ означивания переменной чрезвычайно необычен, код оформлен безобразно, так оно еще и не работает!
На 29.05.2012 выдает "030.6.2012"