Foros del Web » Programando para Internet » PHP »

Coger un trozo de texto

Estas en el tema de Coger un trozo de texto en el foro de PHP en Foros del Web. Hola a todos: Mi problema es el siguiente. - Necesito que en una primera página me muestre un trozo de texto de la base de ...
  #1 (permalink)  
Antiguo 11/05/2010, 03:07
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Coger un trozo de texto

Hola a todos:

Mi problema es el siguiente.

- Necesito que en una primera página me muestre un trozo de texto de la base de datos y una imagen de "leer más", que al pincharla me habra otra página con el texto completo.

Hasta ahora, sólo he encontrado código para poner texto aleatorio y yo necesito que me coja unas frases del texto completo, pero sin cortarlo.

Gracias por adelantado y un gran saludo:

Javy
  #2 (permalink)  
Antiguo 11/05/2010, 05:23
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Coger un trozo de texto

Hola

Podrías usar strpos, para mostrar hasta el primer, segundo, tercer ... punto

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;" />
  #3 (permalink)  
Antiguo 11/05/2010, 05:42
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Coger un trozo de texto

Gracias por tu respuesta.

He estado mirando su función, pero no lo tengo muy claro.

¿Me podrías poner un ejemplo?

Gracias por todo.
  #4 (permalink)  
Antiguo 11/05/2010, 07:14
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Coger un trozo de texto

Hola

Cita:
Iniciado por javy Ver Mensaje
Gracias por tu respuesta.

He estado mirando su función, pero no lo tengo muy claro.

¿Me podrías poner un ejemplo?

Gracias por todo.
No se que es lo que no tienes claro

Código PHP:
Ver original
  1. <?php
  2. // We can search for the character, ignoring anything before the offset
  3. $newstring = 'abcdef abcdef';
  4. $pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
  5. ?>

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 11/05/2010, 07:34
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Coger un trozo de texto

Yo uso este código:

<?php
//CONECTANDO CON LA BASE DE DATOS
require_once("../incluye/config_invitado.php");
require_once("../incluye/funciones.php");
//CONECTANDO A MYSQL
$cnx = conectar();
//CONSULTA
$sql = "SELECT textobercle FROM bercle ORDER BY bercleid ASC";
$res= mysql_query($sql) or die (mysql_error());

if( mysql_num_rows($res) >0){
//IMPRESION DE LOS DATOS
while (list($textobercle) = mysql_fetch_array($res)) {
echo "$textobercle\n ...<BR>
<a href='#' onclick=javascript:nvent('textobercle.php?bercleid =$bercleid')><img src='../imagenes/pagina/masinfo.png' hspace='5' border='0' align='right'></a>";
}
}else{
echo "NO HAY RESULTADOS PARA MOSTRAR";
}
mysql_close($cnx);
?>

Entonces, y mirando tu código, no sé donde debería de colocarlo.

Gracias por todo
  #6 (permalink)  
Antiguo 11/05/2010, 12:25
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Coger un trozo de texto

Hola

Sería algo así

Código PHP:
Ver original
  1. $pos = stripos($textobercle, '.', 2);
  2. echo substr($textobercle,0, strlen($pos)). "<br /><a href='#' onclick=javascript:nvent('textobercle.php?bercleid =$bercleid')><img src='../imagenes/pagina/masinfo.png' hspace='5' border='0' align='right'></a>";
  3. }

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;" />
  #7 (permalink)  
Antiguo 11/05/2010, 14:16
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Coger un trozo de texto

Gracias por tu ayuda Adler, pero después de infinidad de pruebas, no consigo que funcione.
  #8 (permalink)  
Antiguo 11/05/2010, 15:07
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Coger un trozo de texto

Creo que el problema está en que, el texto que está en la Base de Datos tiene código HTML (para mostrar negritas, etc...), y por eso no funciona.

¿Alguna sugerencia?
  #9 (permalink)  
Antiguo 12/05/2010, 11:20
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Lo siento, pero a vueltas con lo mismo: mostrar parte de un texto

Hola a todos.

Ya siento volver con el mismo problema pero ya no sé que hacer. Ya hice la pregunta hace un par de días y con la información que me facilitaron (y la que encontré por Internet) no solucioné el problema.

La cosa es:

Tengo una base de datos donde ingreso texto. Este texto se mete con código HTML para que luego el navegador muestre negritas, enlaces, imágenes, etc.

En una página principal, necesitaba que se me mostrara sólo una parte de ese texto (hasta el primer punto, o un par de frases completas), y un botón de "leer más" que me llevaría a una segunda página donde ya se muestra el texto completo.

En la seguna página, uso este código para llamar a la base de datos:

//CONECTANDO A MYSQL
$cnx = conectar();
//CONSULTA
$sql = "SELECT textobercle FROM bercle ORDER BY bercleid ASC";
$res= mysql_query($sql) or die (mysql_error());

if( mysql_num_rows($res) >0){
//IMPRESION DE LOS DATOS
while (list($textobercle) = mysql_fetch_array($res)) {
echo "$textobercle\n";
}
}else{
echo "NO HAY RESULTADOS PARA MOSTRAR";
}
mysql_close($cnx);


En la primera página (la que lleva el botón de "leer más") he estado jugando con este otro código (que es el mismo pero con el botón):

//CONECTANDO A MYSQL
$cnx = conectar();
//CONSULTA
$sql = "SELECT textobercle FROM bercle ORDER BY bercleid ASC";
$res= mysql_query($sql) or die (mysql_error());

if( mysql_num_rows($res) >0){
//IMPRESION DE LOS DATOS
while (list($textobercle) = mysql_fetch_array($res)) {
echo "$textobercle\n ...<BR>
<a href='#' onclick=javascript:nvent('textobercle.php?bercleid =$bercleid')><img src='../imagenes/pagina/masinfo.png' hspace='5' border='0' align='right'></a>";
}
}else{
echo "NO HAY RESULTADOS PARA MOSTRAR";
}
mysql_close($cnx);


En este código, he probado insertando "substr", "strpos"... y ya no sé cuantos más.

Todo lo que he encontrado relacionado con este tema parece que vá dirigido para cuando se usa un buscador o una palabra en concreto.

Y yó, lo que necesito es que, si el texto (textobercle) de la base de datos tiene 50 frases, que sólo me muestre un par de ellas, sin cortar palabras, etc...

Gracias a todos y, de veras, perdonad que os invada con un tema que, por lo que he visto por el foro, ya ha sido muy tratado, pero os aseguro que con todas las respuestas y código que he probado no consigo que funcione.

Para Adler: gracias por tu ayuda anterior, pero no me funcionó.
  #10 (permalink)  
Antiguo 12/05/2010, 11:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Coger un trozo de texto

Temas unidos, por favor NO dupliques temas.
  #11 (permalink)  
Antiguo 12/05/2010, 11:38
 
Fecha de Ingreso: mayo-2010
Mensajes: 39
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Coger un trozo de texto

si tenes html para mostrarlo en negrita tenes que usar apostrofes

EJ:

'<b>texto</b>'
  #12 (permalink)  
Antiguo 12/05/2010, 11:49
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Coger un trozo de texto

Hola

Culpa mía. Aun se me escapa esto de PHP

Prueba ahora. Con este código sacarás hasta el segundo punto. Para sacar hasta el tercero ..... bueno se entiende

Código PHP:
Ver original
  1. <?php
  2. $textobercle = '<table border="1"><tr><td>Esto es una prueba para ver cual puede ser el problema.</td></tr><table><b>Llegará hasta este punto.</b> Aunque el texto continua';
  3. $pos = stripos($textobercle, '.');
  4. $pos2 = stripos($textobercle, '.', $pos+1);
  5. echo $textobercle. '<br /><br />';
  6. echo substr($textobercle,0, $pos2+1);
  7. ?>

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;" />
  #13 (permalink)  
Antiguo 12/05/2010, 12:46
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Coger un trozo de texto

Gracias Adler por tu rápida respuesta, pero tu código no me sirve, ya que no está llamando a la base de datos. Coge partes de un texto ya colocado en la primera variable, y yo necesito que lea de la base de datos y muestre un par de frases.

Sobre lo del código HTML: yo lo que hago es ingresar el texto con todas las etiquetas HTML en la base de datos, para que luego, me lo muestre con todas las características; es decir, como verías una página web normal. No necesito que me muestre estas etiquetas, sino el texto limpio.

'<b>esto es negrita</b>' - en la base de datos
esto es negrita - así lo muestra

Gracias de todas formas... sigo con ello, jeje
  #14 (permalink)  
Antiguo 13/05/2010, 04:49
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Coger un trozo de texto

Cita:
Iniciado por javy Ver Mensaje
Gracias Adler por tu rápida respuesta, pero tu código no me sirve, ya que no está llamando a la base de datos. Coge partes de un texto ya colocado en la primera variable, y yo necesito que lea de la base de datos y muestre un par de frases.

¿Como que no te sirve? Adaptalo a lo que te ocupa

Cita:
Iniciado por javy Ver Mensaje
Sobre lo del código HTML: yo lo que hago es ingresar el texto con todas las etiquetas HTML en la base de datos, para que luego, me lo muestre con todas las características; es decir, como verías una página web normal. No necesito que me muestre estas etiquetas, sino el texto limpio.

'<b>esto es negrita</b>' - en la base de datos
esto es negrita - así lo muestra


¿Y en qué difiere con el ejemplo?

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;" />
  #15 (permalink)  
Antiguo 14/05/2010, 05:19
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Coger un trozo de texto

Gracias Adler.

Tenias razón: el código me sirvió pero tuve que modificar alfuna cosilla y te explico porqué:

$sql = "SELECT textobercle FROM bercle ORDER BY bercleid ASC";
$res= mysql_query($sql) or die (mysql_error());

if( mysql_num_rows($res) >0){
//IMPRESION DE LOS DATOS
while (list($textobercle) = mysql_fetch_array($res)) {
$pos = strpos($textobercle, '.-');
$pos2 = strpos($textobercle, '.-', $pos-1);
echo substr($textobercle,0, $pos2+1);
echo "<BR><BR><a href='#' onclick=javascript:nvent('textobercle.php')><img src='../imagenes/pagina/masinfo.png' hspace='5' border='0' align='right'></a>";
}
}else{
echo "NO HAY RESULTADOS PARA MOSTRAR";
}


Bién: me explico.

- le he dicho que me busque el texto '.-', le he restado -1 para sumarle +1:

$pos = strpos($textobercle, '.-');
$pos2 = strpos($textobercle, '.-', $pos-1);
echo substr($textobercle,0, $pos2+1);


Si le decía que me buscara '.', lo que ocurría era lo siguiente: como ya te comenté, en la base de datos, está escrito con código HTML:

<P align=center><img src="../imagenes/pagina/hombre1.jpg" hspace="5" vspace="5"></P>
<P align=justify><B>Bla, Bla, Bla.<BR><BR>


El código, al llegar a la primera etiqueta HTML (<img src="../imagenes/pagina/hombre1.jpg" hspace="5" vspace="5">, se trincaba en <img src=". y destrozaba el resto del código y no lo mostraba, dándome unos errores enormes.

Lo he solucionado obligándole a buscar '.-' que, al restarle 1, sólo me muestra el . y no me tira abajo el código HTML.

Espero haberme explicado bién y que esto sirva para más personas.

Gracias de nuevo y un gran saludo para todos.

Javy

Etiquetas: Ninguno
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 03:21.