Foros del Web » Programando para Internet » PHP »

duda con txt

Estas en el tema de duda con txt en el foro de PHP en Foros del Web. Tengo una pagina php que alimenta con información a un txt pero tengo otra pagina que muestra esa información y lo que quiero es que ...
  #1 (permalink)  
Antiguo 21/10/2003, 18:22
 
Fecha de Ingreso: noviembre-2002
Mensajes: 97
Antigüedad: 21 años, 5 meses
Puntos: 0
duda con txt

Tengo una pagina php que alimenta con información a un txt pero tengo otra pagina que muestra esa información y lo que quiero es que esa otra pagina muestre un trozo de esa información se podra hacer?

gracias a todos los que respondan mi pregunta.
  #2 (permalink)  
Antiguo 21/10/2003, 19:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues la respuesta en principio es SI ...

Usa las funciones de file() .. o fgets() .. Todo depende de que estructura tengan tus datos de ese archivo de texto plano ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 22/10/2003, 07:26
 
Fecha de Ingreso: noviembre-2002
Mensajes: 190
Antigüedad: 21 años, 5 meses
Puntos: 0
fgets($f1,long)

Extrae del fichero señalado por el $f1 una cadena que comienza en la posición actual del fichero y cuya longitud esta limitada por el menor de estos tres valores:
El valor (en bytes) indicado en long.
La distancia (en bytes) de la posición actual del puntero al final del fichero.
La distancia (en bytes) de la posición actual del puntero al primer salto de línea.
  #4 (permalink)  
Antiguo 22/10/2003, 14:44
 
Fecha de Ingreso: noviembre-2002
Mensajes: 97
Antigüedad: 21 años, 5 meses
Puntos: 0
aqui esta el codigo

Aqui esta el codigo ya que no les enti mucho para que me puedan ayudar, gracias a los dos...

Código PHP:
<table width="70%" border="0" align="center">

<?
$ficherobase 
file("noticias.txt");
$largo sizeof($ficherobase);
$largo $largo 1;
$maximo=20;
$cuenta=1;

for(
$i=$largo $i>-$i--) {
if (
$cuenta==$maximo) { break; }

$mensaje explode("|"$ficherobase[$i]);

print
"   <tr>";
print
"    <td width=100 height=25 align=center bgcolor=#0033CC><font color=#FFFFFF face=Verdana, Arial, Helvetica, sans-serif size=2><strong>$mensaje[0]</strong></font></td>";
print
"    <td width=75% height=25  align=left bgcolor=#0033CC><font color=#FFFFFF face=Verdana, Arial, Helvetica, sans-serif size=2><strong>$mensaje[1]</strong></font></td>";
print
"  </tr>";
print
"  <tr>";
print
"    <td width=100 rowspan=2 align=center valign=top><img src=imagenes_noticias/$mensaje[3]  width=100 height=100></td>";
print
"    <td width=75%><font color=#0033CC face=Verdana, Arial, Helvetica, sans-serif size=2 align=justify>$mensaje[2]</font></td>";
print
"  </tr>";
print
"  <tr>";
print
"    <td width=75%><div align=left></div>";
print
"  <div align=right><a href=\"javascript:Abrir_Ventana('noticias/$mensaje[4]','500','300')\"><font size=2 face=Verdana, Arial, Helvetica, sans-serif size=1>Ver mas...</font></a></div></td>  </tr>";
print
" <tr>";
print
"    <td>&nbsp;</td>";
print
"    <td>&nbsp;</td>";
print
"  </tr>";
$cuenta++;
}
?>
</table>
  #5 (permalink)  
Antiguo 22/10/2003, 20:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. "que trozo" de ese "txt" o bajo que condiciones mejor dicho ha de mostrar información .. o hasta donde ha de mostar información de ese "txt"?

Por el código que usas .. suponemos que la estructura de tus datos es algo así:

campo0|campo1|campo3|campo3 <-- registro 1
campo0|campo1|campo3|campo3 <-- registro 2
campo0|campo1|campo3|campo3 <-- registro N


(esto es lo que deberías haber dicho: tengo tal estructura de datos y quiero acceder a Tal dato bajo tal condición ..)

Ahora .. supongo que quieres accede a X registro .. ¿no?, pero eso será bajo alguna condición: no sé .. tal vez que "campo1 == $nose" .. ?¿ es eso?

En tal caso .. la función fgets() o fgetcsvs() te podrán servir ..


Visita la documentación oficial de esas funciones ..
http://www.php.net/manual/en/function.fgetcsv.php

Ejemplos tienes ahí ...

Y sobre todo piensa .. que tu "txt" una vez leido por PHP te queda en un array .. así que como tal array que es (tu $mensaje) puedes trabajarlo como quieras conlas funciones de Arrays de PHP o bien recorriendolo entero (con un bucle como de hecho ya lo estás haciendo) y usando tus "condicionales" (IF ... else ...) para presentar el dato que cumpla tu condición ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 23/10/2003, 07:21
 
Fecha de Ingreso: noviembre-2002
Mensajes: 97
Antigüedad: 21 años, 5 meses
Puntos: 0
lo que quiero

Lo que quiero es que uno de los campos (ej:campo1, ¡solo uno!) se muestre en la pagina php hasta la mitad o solo un trozo de el contenido que tiene este campo ¿se podrá hacer?...y si se puede ¿cómo?...
gracias a todos los que respondieron la pregunta...
  #7 (permalink)  
Antiguo 23/10/2003, 08:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
A ver ... primero habrá que reconocer en que "registro" está tu "campo1" que quieres ver .. Eso lo puedes indentificar y/o buscar por la línea de tu txt que corresponda, que; como te he comentado ..es un array lo que tienes en la variable que mencioné, así que una forma sería recorrerla hasta (IF ..) se cumpla la condición que establezcas.

Una vez localiza tu registro .. aplicas explode() al caracter | como de hecho ya lo estás haciendo .. ahí en tu $mensaje[?] tendrás una cadena (un string) vulgar y corriente .. así que ya podrás filtrarlo como quieras usando las funciones de PHP para gestión de cadenas ..

Visita el manual de PHP y busca por funciones del tema "cadenas":

http://www.php.net/strings

Y .. date el tiempo de ver como funciona el script que actualmente usas .. así veras como se trabaja con archivos de texto plano (en arrays) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 27/10/2003, 14:14
 
Fecha de Ingreso: noviembre-2002
Mensajes: 97
Antigüedad: 21 años, 5 meses
Puntos: 0
lo hice pero no me resulta

este es el string que me sirve ya que me corta la cadena en un caracter determinado que en este caso es en el caracter 20, pero no me resulta, ¿qué será? o es que estoy haciendo mal o es que el string no es el correcto, si es así cual es el string que me cumple con lo que yo quiero...

este el codigo que uso:

Código PHP:
<table width="70%" border="0" align="center">

<?
$ficherobase 
file("noticias.txt");
$largo sizeof($ficherobase);
$largo $largo 1;
$maximo=20;
$cuenta=1;

for(
$i=$largo $i>-$i--) {
if (
$cuenta==$maximo) { break; }

$mensaje explode("|"$ficherobase[$i]);
$msj[2] = wordwrap$mensaje[2], 20 );
print
"   <tr>";
print
"    <td width=100 height=25 align=center bgcolor=#0033CC><font color=#FFFFFF face=Verdana, Arial, Helvetica, sans-serif size=2><strong>$mensaje[0]</strong></font></td>";
print
"    <td width=75% height=25  align=left bgcolor=#0033CC><font color=#FFFFFF face=Verdana, Arial, Helvetica, sans-serif size=2><strong>$mensaje[1]</strong></font></td>";
print
"  </tr>";
print
"  <tr>";
print
"    <td width=100 rowspan=2 align=center valign=top><img src=imagenes_noticias/$mensaje[3]  width=100 height=100></td>";
print
"    <td width=75%><font color=#0033CC face=Verdana, Arial, Helvetica, sans-serif size=2 align=justify>$msj[2]</font></td>";
print
"  </tr>";
print
"  <tr>";
print
"    <td width=75%><div align=left></div>";
print
"  <div align=right><a href=\"javascript:Abrir_Ventana('noticias/$mensaje[4]','500','300')\"><font size=2 face=Verdana, Arial, Helvetica, sans-serif size=1>Ver mas...</font></a></div></td>  </tr>";
print
" <tr>";
print
"    <td>&nbsp;</td>";
print
"    <td>&nbsp;</td>";
print
"  </tr>";
$cuenta++;
}
?>
</table>
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 23:20.