Foros del Web » Programando para Internet » PHP »

visualizar solo una parte de una noticia

Estas en el tema de visualizar solo una parte de una noticia en el foro de PHP en Foros del Web. hola, estoy intentando que aparezca en pantalla solo una parte o primeras lineas contenidas en un campo de noticias, y que luego al pinchar en ...
  #1 (permalink)  
Antiguo 18/07/2004, 05:24
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
visualizar solo una parte de una noticia

hola, estoy intentando que aparezca en pantalla solo una parte o primeras lineas contenidas en un campo de noticias, y que luego al pinchar en estas la noticia se amplie.

es decir, necesito scar unas pocas lineas para mostrar de esa noticia no entera que esta contenidad en un campo bbdd mysql.

gracias.
  #2 (permalink)  
Antiguo 18/07/2004, 06:21
 
Fecha de Ingreso: julio-2003
Mensajes: 64
Antigüedad: 14 años, 4 meses
Puntos: 0
Hola
Lo puedes hacer mediante esta orden.

substr(''.$variable.'', 0,150)

Donde variable es el texto que quieres sacar. Me imagino que si se trata de una noticia lo tendras en una base de datos, luego lo puedes hacer así,
substr(''.$row['noticia'].'', 0,150),
de esta manera, sólo te sacará las 150 primeras letras del texto (0 es conde empieza, y 150 el número de caracteres que tiene que sacar a partir del inicio). Luego puedes poner un texto como "...ver más" que esté enlazado a la noticia.

Espero que te sirva de ayuda.
__________________
Un saludo desde Alicante...

Eduardo
  #3 (permalink)  
Antiguo 18/07/2004, 10:39
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
gracias esa era la idea,

porque tenia cun campo intro y otro de noticia, al final estaba repitiendo informacion en la bbdd.
  #4 (permalink)  
Antiguo 18/07/2004, 16:35
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
de esta linea que debo sustituir por lo que tu me dices???

la original es:
<? echo "<a href=\"sec_linares.php?id=".$ph['id']."\">".$ph['intro']."</a>"; ?><br>

no se como poner lo que me dices, probe y me da errores.

gracias.
  #5 (permalink)  
Antiguo 18/07/2004, 20:08
 
Fecha de Ingreso: julio-2004
Ubicación: Puerto Vallarta, Jalisco, Mexico
Mensajes: 186
Antigüedad: 13 años, 4 meses
Puntos: 0
creo que asi

Código PHP:
<? echo "<a href=\"sec_linares.php?id=".$ph['id']."\">".substr($ph['intro'],0,150)."</a>"?><br>
aunque esto funciona yo preferiria usar explode() para sacar palabras completas, por que son el substr, te podria dar algo como esto

si tuvieras 15 letras y le dijeras que solo pusiera 13 te saldria asi

"Hola como est"

en cambio con explode pudieras imprimir 3 palabras y te saldria esta

"Hola como estan"

solo que ciertamente con explode() seria un poco mas de codigo, y no se que tanto reduzca el desempeño.

pero seria cuestion de probarlo

http://www.php.net/explode

Suerte
__________________
Shanti Castillo G.

Última edición por Shantic; 18/07/2004 a las 20:22
  #6 (permalink)  
Antiguo 19/07/2004, 00:24
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
exacto eso pasó, que cortó alguna que otra palabra, es cuestion de ver el explode como funciona. ya constaré.

gracias.
  #7 (permalink)  
Antiguo 19/07/2004, 04:02
 
Fecha de Ingreso: julio-2004
Ubicación: Puerto Vallarta, Jalisco, Mexico
Mensajes: 186
Antigüedad: 13 años, 4 meses
Puntos: 0
que no te asuste, explode() es facil de utilizar, ciertamente no tan sencillo como el substr(), pero tal vez mejor para lo que tu quieres hacer, por ejemplo purbe algo como esto.

$string = "esta es una string, solo tengo 8 palabras";

$noticia = explode(" ", $string); //$noticia ahora es un array de 8 elementos

for ($i=0;$i <= 3;$i++)
$intro = $noticia[$i];

// $intro ahora contiene "esta es una string,"

claro que es un ejemplo muy sencillo, a este le podria agregar un if para saber si el string es mas grande que las palabras definidas a mostrar ( para queno te de un error el for)

Oajala te ayude :)
__________________
Shanti Castillo G.
  #8 (permalink)  
Antiguo 19/07/2004, 05:00
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
vamos a ver si el explode funciona como yo creo teoricamente, aun no lo he probado por falta de tiempo:

supongamos lo siguiente

$variable="Las playas de la costa de sol esta repleta de turistas .... Mas de un millon de turistas estan visitando las costas malagueñas en este mes de Julio. Para Agosto blablablablablablablablablabla blablablabla blablablablabla".

si uso explode("...", $variable)

el comando extrae esta parte de la varible "Las playas de la costa de sol esta repleta de turistas ...."

¿seria asi no?
  #9 (permalink)  
Antiguo 19/07/2004, 16:45
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
pues en ese campo tiene tres puntos ... como marca para que el explode sepa que ahi debe coger todo el texto necesario hasta esos tres puntos.

pues bien use estas lineas:

Código PHP:
<? 
                         $introduce
=explode("...",$ph['texto']);
                         echo 
"<a href=\"sec_linares.php?id=".$ph['id']."\">".$introduce."</a>";?><br>
y me devuelve por pantalla la frase "array" es decir, no me saca las lineas que conforman parte del contenido de ese campo.


la verdad es que me lei la ayuda de php.net sobre explode pero me quede a medias o que se yo.

por favor necesito de su ayuda de nuevo, gracias.
  #10 (permalink)  
Antiguo 19/07/2004, 17:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
El manual explica claramente lo que hace la función explode:
http://www.php.net/manual/es/function.explode.php

En tu caso... $introduce es un array con dos elementos: el primero ($introduce[0]) es una cadena que contiene todo lo que está antes de los puntos ... y el segundo ($introduce[1]) contiene todo lo que está después.
Código PHP:
$introduce explode("...",$ph['texto']);
echo 
"<a href=\"sec_linares.php?id=".$ph['id']."\">".$introduce[0]."</a>";?><br> 
Si hubieran más "...", tendrías más posiciones tu array.

Saludos
  #11 (permalink)  
Antiguo 19/07/2004, 18:15
Avatar de pereztroff  
Fecha de Ingreso: junio-2002
Ubicación: En la Internet.
Mensajes: 4.068
Antigüedad: 15 años, 6 meses
Puntos: 5
muchas gracias, ahora si entendi el funcionamiento que es lo que me interesaba.
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 13:16.