Foros del Web » Programando para Internet » PHP »

Problema CORTANDO un CAMPO :-(

Estas en el tema de Problema CORTANDO un CAMPO :-( en el foro de PHP en Foros del Web. En una web que estoy haciendo tengo una tabla mysql, con un campo "longtext" que suele ser muy grande, por lo que acoplé la función ...
  #1 (permalink)  
Antiguo 17/05/2005, 02:58
 
Fecha de Ingreso: diciembre-2003
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
Exclamación Problema CORTANDO un CAMPO :-(

En una web que estoy haciendo tengo una tabla mysql, con un campo "longtext" que suele ser muy grande, por lo que acoplé la función de Cubano corta_texto para paginar una guía o manual por ejemplo en partes de 2000 carácteres.
Está todo bien hecho:

Código PHP:
<?php
function corta_texto($texto$num) {
    
$txt = (strlen($texto) > $num) ? substr($texto,0,$num)."..." $texto;
    return 
$txt;

?>
A esa función le añadí un parámetro más, que es $inicio, que es igual a la página ($pg) en la que se está multiplicada por el numero de caracteres por pagina 2000, asi que si estamos en la pagina 4, empezará por el caracter 4*2000 = 8000
y acabará en el caracter 10000 (8000 + 2000).

El problema viene cuando, quiero insertar una imagen por ejemplo.

" <img src="img.jpg" alt=""> " --> Imaginaos que se corta en el caracter ">" para pasar de pagina, entonces, la página 4 acabaría en: <img src="img.jpg" alt="" ----> y la página 5 empezaría en ">", lo que la imagen pues no se muestra.

Mi pregunta es la siguiente:El problema se resolvería...,uhmmm, pasando de BBCODE a HTML, despues de cortar el texto, y.. cortar por palabras y no por carácteres??... en ese caso... ¿Como sería?

Muchas Gracias de antemano por la ayuda que me puedan mostrar.
Att.
ErFoN^^
  #2 (permalink)  
Antiguo 17/05/2005, 10:50
 
Fecha de Ingreso: diciembre-2003
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
Nadie sabe?
  #3 (permalink)  
Antiguo 19/05/2005, 09:34
 
Fecha de Ingreso: diciembre-2003
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
No me podrían dar una solución alternativa'
  #4 (permalink)  
Antiguo 19/05/2005, 09:47
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por erfon2
Mi pregunta es la siguiente:El problema se resolvería...,uhmmm, pasando de BBCODE a HTML, despues de cortar el texto, y.. cortar por palabras y no por carácteres??... en ese caso... ¿Como sería?
No te puedo ayudar ahora en eso.. pero te diré que existe euna función así en este foro.. trata de buscarla.. limitate a los usuarios Cluster y jpinedo.... ignoro si se encuentre en las FAQ...

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 21/05/2005, 18:27
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
Hola:
En ese caso lo que convendría es definir ya previamente dónde se harán los cortes de página.
Dos opciones:
- Primera: Poner una cadena de "ruptura". Cada vez que aparece, se sabrá que termina una página y empieza otra.
- Segunda (recomendada): Guardar el texto en la base de datos ya dividido en páginas. O sea una tabla especialmente para guardar el id del artículo, el número de la página y el contenido de esa página.

Saludos
  #6 (permalink)  
Antiguo 21/05/2005, 18:31
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
Aquí puedes ver algo más detallado con respecto a lo que te digo:
http://www.forosdelweb.com/f18/dividir-paginas-texto-campo-294501/

Saludos
  #7 (permalink)  
Antiguo 31/05/2005, 02:51
 
Fecha de Ingreso: diciembre-2003
Mensajes: 52
Antigüedad: 14 años
Puntos: 0
Muchísimas gracias!
Ya tenía pensado hacer lo de pagebreak al puro estilo Wordpress , sólo que no se me ocurrió plantearlo, sólo se me pasó 1 seg por la cabeza y lo descarte.
Ya lo tengo de esa forma, gracias!
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 00:49.