Foros del Web » Programando para Internet » PHP »

Comparacion de fechas en galerias

Estas en el tema de Comparacion de fechas en galerias en el foro de PHP en Foros del Web. Wenas, bien tengo cada día el código de una galería de imagenes actualizada, donde aparece la fecha de la galeria y un enlace hacia esa ...
  #1 (permalink)  
Antiguo 23/02/2005, 07:12
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Comparacion de fechas en galerias

Wenas, bien tengo cada día el código de una galería de imagenes actualizada, donde aparece la fecha de la galeria y un enlace hacia esa galeria. Bien el problema es que en 1 de las 4 columnas sale la fecha incorrectamente.

La columna va variando, un día la primera, otro la segunda....

Y tb varía la fecha incorrecta, puede aparecer 24/12 como 08/02 como 16/84,etc..

Así que había pensado comprara el resultado de un foreach con busqueda <BR>posibilidad de fecha correcta</a></TD> con el código pero no consigo absolutamente nada.

Mi idea era fechas_correctas una variable que lee linea a linea de un fihero todas las posibles fechas correctas, y cuando una linea no contenga una de estas fechas que sustituya la fecha vieja por la fecha de la galeria siguiente, ejemplo: en al primera columna cambia 24/12 por 19/02.

El problema es que no se como plantear el problema :(

A ver si me podeis hechar un cable.

Os dejo aquí el codigo resumido.

Un saludo.

<TABLE>
<TR>
<TD align="center"><a href="1.htm"><BR>24/12</a></TD>
<TD align="center"><a href="2.htm"><BR>19/02</a></TD>
<TD align="center"><a href="3.htm"</a>19/02</TD>
<TD align="center"><a href="4.htm"><BR>19/02</a></TD>
</TR>
<TR>
<TD align="center"><a href="5.htm"><BR>24/12</a></TD>
<TD align="center"><a href="6.htm"><BR>18/02</a></TD>
<TD align="center"><a href="7.htm"><BR>18/02</a></TD>
<TD align="center"><a href="8.htm"><BR>17/02</a></TD>
</TR>
<TR>
<TD align="center"><a href="9.htm"><BR>24/12</a></TD>
<TD align="center"><a href="10.htm"><BR>16/02</a></TD>
<TD align="center"><a href="11.htm"><BR>16/02</a></TD>
<TD align="center"><a href="12.htm"><BR>16/02</a></TD>
</TR>
<TR>
<TD align="center"><a href="13.htm"><BR>24/12</a></TD>
<TD align="center"><a href="14.htm"><BR>16/02</a></TD>
<TD align="center"><a href="15.htm"><BR>15/02</a></TD>
<TD align="center"><a href="16.htm"><BR>15/02</a></TD>
</TR>
<TR>
<TD align="center"><a href="17.htm"><BR>08/02</a></TD>
<TD align="center"><a href="18.htm"><BR>15/02</a></TD>
<TD align="center"><a href="19.htm"><BR>15/02</a></TD>
<TD align="center"><a href="20.htm"><BR>15/02</a></TD>
</TR>
</TABLE>
  #2 (permalink)  
Antiguo 23/02/2005, 08:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. vamoss a ver .. donde interviene PHP en todo esto? .. Esos datos que generan esa tabla HTML .. lo haces con PHP? .. (o podrías hacerlo con PHP?) .. por qué me parece lo más sano generar esa tabla dinámicamente desde PHP .. previo filtrado o validado esas fechas que se compararan u obtendran de alguna Base de datos, archivo de texto plano o se generaran por otros médios.

Un saludo,
  #3 (permalink)  
Antiguo 23/02/2005, 09:12
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
No no, las tablas son generadas medianet el script, En un fichero de texto dispongo de un listado de X galerias, una galeria por linea. Mediante Php hago lso cambios pertinentes, coloco lso enlaces, las fechas y las tablas. Pero en un de las columnas, weno mejor dicho cada 4 lineas existe una fecha erronea y no se como cambiarla por la fecha de la siguiente galeria :(


En el fichero aparece asi:

<a href="1.htm"><BR>24/12</a> //Error
<a href="2.htm"><BR>19/02</a>
<a href="3.htm"><BR>19/02</a>
<a href="4.htm"><BR>19/02</a>
<a href="5.htm"><BR>24/12</a>// Error
<a href="6.htm"><BR>18/02</a>
<a href="7.htm"><BR>18/02</a>
<a href="8.htm"><BR>17/02</a>

Aparece una fecha erronea cada 4 lineas, pero la priemra fecha erronea no siempre aparece en la primera linea.

Teoricamente me debería aparecer de la siguiente manera:

<a href="1.htm"><BR>19/12</a> //error corregido
<a href="2.htm"><BR>19/02</a>
<a href="3.htm"><BR>19/02</a>
<a href="4.htm"><BR>19/02</a>
<a href="5.htm"><BR>18/02</a>// error corregido
<a href="6.htm"><BR>18/02</a>
<a href="7.htm"><BR>18/02</a>
<a href="8.htm"><BR>17/02</a>

Uff no se si me vas a poder entender xD

Un saludo.

Última edición por yamakasiz; 23/02/2005 a las 09:17
  #4 (permalink)  
Antiguo 23/02/2005, 10:04
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Sin mas especificaiones PHP no puede saber cual fecha es la incorrecta...
Por ejemplo, dispones de la funcion checkdate(), pero 24/12 (que marcaste como incorrecta) puede validarse como correcta.

Una ves que definas una forma de reconocer las fechas incorrectas puedes usar un bucle for() para modificar los datos del archivo (despues de abrirlo con file())

Una pregunta algo descolocada: se puede corregir a mano el problema y chau?
  #5 (permalink)  
Antiguo 23/02/2005, 10:51
 
Fecha de Ingreso: febrero-2002
Mensajes: 139
Antigüedad: 15 años, 9 meses
Puntos: 0
Weno hago un for desde 0 hasta el final del fichero, y mediante expldoe recojo linea a linea y busco en cada 1 el numero de mes, si no existe es que esa linea tiene una fecha erronea. Si es erronea hacemso uso de la funcion para buscar fechas, pero con $parte-1 es decir para la linea anterior, y asi disponer de una fecha buena. Luego hacemso uso de la funcion en esa linea y lozalizada la fecha erronea la cambiamos pro la fecha de la linea anterior y guardamos cambios.

Pero no me funciona :( hace una ejecucion muy rapido (cosa extraña ya que sin este fragmento de codigo tarda un par de segundos en ejecutarse el script) y no realiza ningun cambio :(


la fucnion para buscar als fechas es :
function busco_fechas($criterio,$string)
{
$buscar[0]=strtoupper($criterio);
$buscar[1]=strtolower($criterio);
$buscar[2]=ucfirst($buscar[1]);
//$patron="/(<[h|H]1[A-Za-z0-9 \"=]*> )(.*)(".$buscar[0]."|".$buscar[1]."|".$buscar[2].")(.*)(</[h|H]1> )/";
$busqueda=preg_match_all("/(<BR>)(.*)(".$buscar[0]."|".$buscar[1]."|".$buscar[2].")(.*)(<\/a>)/",$string,$salida);$resultado['cuantos']=count($salida[0]);
foreach ($salida[0] as $valor)
{
$resultado["textos"][]=$valor;
}
return $resultado;
}
//leo galerias.txt
$file = "galerias.txt";
$arr = file($file);

for ( $i = 0 ; $i < sizeof($arr) ; $i++ )
{
$arr[$i] = $arr[$i];
}
$contenido = implode("", $arr);
$fp = fopen($file,'w');
fputs($fp, $contenido);
fclose ($fp);

$mes="02";

for ( $i = 0 ; $i < sizeof($arr) ; $i++ )
{
$fp = fopen("galerias.txt","r");
$contents = fread ($fp, filesize ("galerias.txt"));
$parte= explode("\n", $contents);
$galeria=$parte[$i]
fclose ($fp);

$galeria_buena1 = substr_count($galeria, $mes."</a>");
$galeria_buena2 = substr_count($galeria, $mes-1."</a>");

if ($galeria_buena1<1)
{
//Recojo fecha de la galeria anterior
$galeria_anterior=$parte[$i-1];
$string=$galeria_anterior;
$criterio="\/"; // recojo este criterio ya que als fechas son del tipo: dia/mes
$fechita_mala=busco_fechas($criterio, $string);
foreach ($fechita_mala["textos"] as $buscado_anterior)
{
$buscado_anterior=$buscado_anterior;
}
//Recojo fecha de la galeria actual
$string=$galeria;
$criterio="\/";
$fechita_buena=busco_fechas($criterio, $string);
foreach ($fechita_buena["textos"] as $buscado)
{
$fp = fopen("galerias.txt","r");
$galerias = fread ($fp, filesize ("galerias.txt"));
$galerias1=str_replace($buscado,$buscado_anterior, $galerias);
fclose ($fp);
$file = "galerias.txt";
$fp = fopen($file,'w');
fwrite( $fp, $galerias1);
fclose ($fp);
}


}else
{
}
}

Última edición por yamakasiz; 23/02/2005 a las 10:53
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:04.