php y txt
3 seguidores
Hola, tengo un problemilla. He visto por ahi varios scripts php para leer, modificar, añadir, etc contenidos en ficheros txts. Pero los de leer (que son los que me interesan) son sólamente para leer por completo el fichero.
Yo dentro de un txt tengo definidas variables que se cargan en una peli flash.
Ej.
&news=Noticias bla bla bla
&
Querría abrir el fichero (esto ya se hacerlo) y leer únicamente el contenido de &news (esto no se hacerlo ni se si puede hacerse) en php.
Si alguien me puede ayudar, gracias!
sadangel
Prueba esto, aunque no sé si te soluciona el problema, pq. lo que he entendio es que quieres sacar el contenido de la primera línea... que es la que contiene la variable &news
$News = file('news.txt');
$News[0] = str_replace ("&news=", "", $News[0]);
echo $News[0];
Con esto tendrías lo que viene detrás de &news= o sea, el contenido de la misma.
zaleia
Gracias Sad! Bueno antes de nada aclarar que soy novata con PHP. He hecho lo que comentas y me sale la primera línea.
El problema es que yo tengo varias variables en el txt, y además cada variable son parrafos con saltos de línea y eso ya no me los coje. Además la idea es poder reutilizar después todo el texto de cada variable (para modificar, añadir, eliminar, etc..).
He empezado mirando estas acciones mediante fopen, fputs, etc.. (es la opción que me resulta más sencilla de aplicar y además puedo hacer de todo con el texto). El problema sigue siendo el mismo, llamar a la variable del txt y no todo el fichero.
Luego en temas sobre strings he encontrado esto:
++++++++++++
In case any of you wanted to parse a deliminated text file, I've come up with a script that may of some use.
//I call the function and return the parsed data in a multi-D array.
function thisone() {
$info = array();
$x=file("yourData.txt");
//Here I take the first line of the data file and grab the variable names.
$names = explode('|',$x[0]);
//Once I've got the variable names I delete x[0] so that I can run through the info array with foreach
unset($x[0]);
foreach($x as $keyx=>$valuex) {
$w = explode('|',$valuex);
foreach($w as $keyw=>$valuew) {
$info[$keyx][$names[$keyw]] = $valuew;
}
}
return $info;
}
$bin = thisone();
print_r($bin);
++++++++++++++
Pero esto ya no lo entiendo.. :(
(y supongo que lo suyo sería poder coger mediante este script la variable que busco)
Espero no haberme liado mucho explicándolo. Si alguien sabe una solución o un buen manual os lo agradecería mucho.
hartum
zaleia guapisima, has probado a usar ficheros xml en lugar de txt??? lo digo porque el php, trae ordenes especificas para ello.
Y en segundo lugar me parece que es un planteamineto un poco raro ese que me haces, si me explicas que quieres hacer alo mejor te puedo echar un cable, porque si es un texto que vas a poner en pantalla, quizas te es mejor llamar al texto texto.php que texto.txt, y hacer un include("texto.php"), asi luego puedes poner:
<code><?php
$news="loquesea...";
?></code>
y usarlo como si fuese una variable.
Una ultima cosa, ¿hace un manual de php en castellano? pues correo que te crio hartum@hartum.net
sadangel
Si lo que quieres es hacer un sistema de noticias, estoy con Hartum, aunque yo tengo uno hecho en PHP con txt(s) y me funciona correctamente...
¿Qué es exactamente lo que quieres hacer?
mira, te voy recomendar un libro con el que vas a poder aprender muchísimo en muy poco tiempo:
"PHP" de Larry Ullman (Prentice Hall) es barato, unos 12 euros y no es nada tocho, pero no creas por eso que no sirve para nada, todo lo contrario.
Sería muy largo exponer por aquí todo lo que serían los scripts para lo que pides con los txt.
Por otra parte, si eres novata yo te recomendaría primero leer mucho, antes de lanzarte a cualquier proyecto y hacer pequeñas cosas antes de intentar hacer algo más serio. Si necesitas más ayuda envíame un mail...
Yo lo que haría sería no meter variables en el txt sino directamente los datos separados por "|" como hace el script que te metes. Por ejemplo:
Titulo | Fecha | Noticia | Autor
luego con el siguiente código:
$Noticias = file('noticias/noticias.txt');
// con la anterior línea abres el archivo y creas un elemento de una array por línea.
foreach ($Noticias as $noticia) {
$noticia = trim($noticia);
$parte = explode("|", $elementos);
//con trim quitás los espacios en blanco innecesarios, con explode sacas un elemento de la array por cada cosa entre "|" tendrás por lo tanto:
$parte[0] = Titulo
$parte[1]= Fecha
$parte [2] = Noticia
$parte[3] = Autor
//con la línea siguiente evitas que existan más de 2 br juntos en el cuerpo de la noticia y que si los hay lo cambie por sólo un <br>.
$parte[2] = preg_replace("/(<br\>){2,}/", "<br> ", $parte[2]);
Finalmente llamando a cada una de las variables podrás darle formato:
ejemplo:
echo "<span class=\"titulo\">" . $parte[0] . "</span>"...... }
zaleia
Holas! Pues a ver es una cosa extraña, resulta que unos amigos de un familiar necesitaban un sistema para leer, editar y borrar información contenida en txts que se publicaban en una web en flash.
Sería una especie de gestor de txts.....
Les comenté lo del xml, porque además me resultaba más fácil de aprender ya que hay más información al respecto (o al menos más clara), y aunque fuesen muchos txts sólo sería cuestión de copy&paste pero no se que problema tienen que me sacan excusas donde no las hay y nada en txt!.
PHP novata, porque aunque fundamentos de programación es una querida asignatura que he estudiado, la aprobé de coña y la mitad se me ha olvidado. A ver si me pongo a refrescar la memoria >> SIII me hace falta un buen manual (ahora te escribo Hartum ;)) y le echaré un vistazo al libro que me comentas SadAngel.
Lo que no se me había ocurrido es lo de llamar al texto como un php y hacer un include, a lo mejor esto "cuela" :p
Voy a intentar y comentar las posibilidades y os cuento. GRACIAS!! :D