Foros del Web » Programando para Internet » PHP »

sistema de noticias, guardar noticia en .php no en BD

Estas en el tema de sistema de noticias, guardar noticia en .php no en BD en el foro de PHP en Foros del Web. por favor ayudenme!! en este sistema de noticias, se podria modificar para que la noticia se cree en una nueva pagina .php ? de preferencia ...
  #1 (permalink)  
Antiguo 23/07/2010, 21:52
 
Fecha de Ingreso: julio-2010
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 0
sistema de noticias, guardar noticia en .php no en BD

por favor ayudenme!!

en este sistema de noticias, se podria modificar para que la noticia se cree en una nueva pagina .php ?
de preferencia 1.php, 2.php 3.php ... automaticamente
http://www.promocionatupagina.com/webmaster-avanzado-f46/tutorial-de-como-empezar-una-web-mas-profecional-con-byethost-t5017.htm

lo que pasa es quequiero hacer algo como noticia.php?id=#
ya se como, con este code...

Código PHP:
<?php
$_GET
[id];
if(
$_GET[id]==1){
include (
"1.php");
}
elseif(
$_GET[id]==2){
include (
"2.php");
}
else{
?>
Contenido que se vera si no escojen ningun id.
<?
}
?>
  #2 (permalink)  
Antiguo 23/07/2010, 23:57
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: sistema de noticias, guardar noticia en .php no en BD

No hace falta guardar las noticias en 1 archivo para cada noticia, sería muy desordenado... Mejor aún sería guardar todas las noticias en un solo archivo, o en una base de datos, aún así podes llamarlas por el ID a través de un query: noticias.php?id=#

Hay muchas formas de hacerlo... Una manera muy fácil de hacerla con un archivo, es guardando las noticias en un arreglo, y manipularlas desde el mísmo, ejemplo:

Código PHP:
Ver original
  1. $noticias = array(
  2.     [0] => array(
  3.         ["titulo"] => "Noticia 1",
  4.         ["contenido"] => "Contenido 1",
  5.         ["fecha"] => "08-08-2010"
  6.     ),
  7.     [1] => array(
  8.         ["titulo"] => "Noticia 2",
  9.         ["contenido"] => "Contenido 2",
  10.         ["fecha"] => "09-08-2010"
  11.     )
  12. );

Luego serializas el arreglo con serialize() y lo guardas en un archivo:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $noticias = serialize($noticias);
  4. file_put_contents('nombre_del_archivo.txt', $noticias);
  5.  
  6. ?>

Para obtener el arreglo con todas las noticias solo tenés que llamar al contenido del archivo (obviamente antes de lo anteriormente explicado), y deserializarlo con unserialize() de ésta forma:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $noticias = file_get_contents('nombre_del_archivo.txt');
  4. $noticias = unserialize($noticias);
  5.  
  6. ?>

Ahora la varaible $noticias contendrá un arreglo con todas las noticias guardadas hasta el momento...

Y puedes aprovechar el índice del arreglo para utilizarlo como ID, solamente tratá de "filtrar" el índice 0 (cero)
Código PHP:
Ver original
  1. <?php
  2.  
  3. if ($_GET['id'])
  4.     $articulo = $noticias[$_GET['id']];
  5.  
  6. ?>

Te lo explique de manera sencilla, obviamente el código siempre va a ser más completo y debería ser más seguro... Espero que te sirva.

¡Saludos!
  #3 (permalink)  
Antiguo 24/07/2010, 00:57
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: sistema de noticias, guardar noticia en .php no en BD

La verdad que es mejor usar una base de datos, pero si quieres usar lo de los archivos php separados puedes hacer algo como esto:

Código PHP:
<?php
/*  Esta funcion trae los nombres de archivos dentro de un directorio
 *    Sus parametros son ("directorio", "tipo")
 *    file_list_reverse("./noticias","*.php) en tu caso)
 *    los regresa en orden alfabetico del mayor al menor
 *    {'10','09','08','07','06'....}
*/
function file_list_reverse($d,$x){
       foreach(
array_diff(scandir($d),array('.','..')) as $f)if(is_file($d.'/'.$f)&&(($x)?ereg($x.'$',$f):1))$l[]=$f;
       if (
$l){
       
$reverse array_reverse($l);
       return 
$reverse;
       }
       return 
$l;
}

/*Se verifica si ha sido enviado el formulario*/ 
if ($_POST['enviar']){
    
$ultimaNoticia file_list_reverse("./noticias/""*.php");
    
$ultimoPHP "01";
    
//Si existen archivos dentro de la carpeta noticias
    
if ($ultimaNoticia){
        
//Revisando cual ha sido la ultima y separamos el nombre de la extencion
        
$nombre_del_archivo explode(".",$ultimaNoticia[0]);
        
$ultimoPHP $nombre_del_archivo[0];
        
//Aumentamos en 1 sera el nuevo nombre de nuestro .php
        
$ultimoPHP++;
        
//Comprobamos si es menor a diez para mantener el formato 01,02 en vez de 1,2
        
if ($ultimoPHP 10)
            
$ultimoPHP "0" $ultimoPHP;
          }              
    
/*Escribiendo El Archivo PHP Con La Noticia*/
    
$archivo_noticia_php fopen("./noticias/" $ultimoPHP ".php","w+");
    
/*Aqui el formato que le quieras dar a tu noticia*/
    
$formato_noticia =
        
"<?php\n" .
        
"echo \"<div align=\\\"center\\\">" $_POST['titulo'] . "</div><br /><br />\"\n;" .
        
"echo \"" $_POST['noticia_nueva'] . "\"\n;" .
        
"?>";
    
fwrite($archivo_noticia_php,$formato_noticia); 
    
fclose($archivo_noticia_php);          
    echo 
"<font color=\"#0000FF\">Noticia Agregada con Exito En El Archivo $ultimoPHP.php</font><br />";
}
?>  


<br />Agregar Noticia<br /><br />
<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'?>">
Titulo:<br />
<input type="text" name="titulo" size="50" /><br />
Noticia:<br />
<textarea name="noticia_nueva" rows="10" cols="50">Texto de la noticia</textarea>
<br />
<input type="submit" name="enviar" value="Crear Noticia" />
</form>
bueno esa es solo la idea de lo que quieres tendrias que trabajarlo mas, y tambien si necesitas agregarle mas campos al formulario.
  #4 (permalink)  
Antiguo 24/07/2010, 07:33
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: sistema de noticias, guardar noticia en .php no en BD

Hola

Es mas sencillo con XML, PHP y AJAX

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 24/07/2010, 19:33
 
Fecha de Ingreso: julio-2010
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: sistema de noticias, guardar noticia en .php no en BD

gracias Nishrokh me cnvense esa forma, solo que no se en que parte pone los codigos :s
ayudenme porfavor :s

Etiquetas: bd, sitemap
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 05:39.