Prueba esto:
Código PHP:
<?php
//devuelve el dia 30 o el ultimo valido
function ultimoDiaMes30($mes,$año)
{
for ($i=27;$i<31;$i++)
{
if (checkdate($mes,$i,$año))
$dia_valido=$i;
}
return $dia_valido;
}
$fecha_actual="12/08/2005";
$meses=40;
$arr_fecha=explode("/",$fecha_actual);
$ts_actual=mktime(0,0,0,$arr_fecha[1],$arr_fecha[0],$arr_fecha[2]);
for ($i=0;$i<$meses;$i++)
{
$mes=date("m",$ts_actual);
$año=date("Y",$ts_actual);
$dia=ultimoDiaMes30($mes,$año);
$fecha_ver="$dia/$mes/$año";
echo $fecha_ver."<br>";
$ts_actual=mktime(0,0,0,$arr_fecha[1]+1,$arr_fecha[0],$arr_fecha[2]);
$fecha_actual=date("d/m/Y",$ts_actual);
$arr_fecha=explode("/",$fecha_actual);
}
?>