Foros del Web » Programando para Internet » PHP »

Necesito ayuda con strlen

Estas en el tema de Necesito ayuda con strlen en el foro de PHP en Foros del Web. Quiero contar los caracteres de una cadena, pero que no cuente los que están dentro de [.quote.][./quote.]. Es para un sistema de premios por postear ...
  #1 (permalink)  
Antiguo 15/05/2008, 06:05
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 1 mes
Puntos: 3
Necesito ayuda con strlen

Quiero contar los caracteres de una cadena, pero que no cuente los que están dentro de [.quote.][./quote.]. Es para un sistema de premios por postear en el foro, pero no quiero que cuente lo que está dentro del quote.

La parte de la función que regula esto es:

Código PHP:
add_gold($pref['gold_newthread'] / 50 strlen($_POST['post']), USERID); 
Pero así cuenta todo el post.

Última edición por ldp; 15/05/2008 a las 09:58
  #2 (permalink)  
Antiguo 15/05/2008, 08:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Necesito ayuda con strlen

como quote??

todo tiene un formato y manera de... pero
puedes especificar a ke te refieres con eso, asi ya ayudaremos!
  #3 (permalink)  
Antiguo 15/05/2008, 10:05
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 1 mes
Puntos: 3
Re: Necesito ayuda con strlen

Es que no me deja poner [.quote.] [./quote.] sin los puntos.

Es para un sistema de recompensas por longitud de los mensajes en el foro. Lo que pasa es que si yo te cito a ti (a eso me refiero con "quote") cuenta lo que he escrito yo más la cita. Yo quiero que sólo cuente lo que yo he escrito sin contar la cita.

Yo quiero que sea algo así:

Código PHP:
add_gold($pref['gold_newthread'] / 50 * (strlen($_POST['post']) - ([quote]texto citado[/quote])), USERID); 
En mi foro las citas van con este código:

[quote1210868859=usuario]
texto citado
[/quote1210868859]

Última edición por ldp; 15/05/2008 a las 10:29
  #4 (permalink)  
Antiguo 15/05/2008, 10:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Necesito ayuda con strlen

haber... necesitas expresiones regulares y varias variables temporales...
realmente lo ke pides es algo complikado.... ya ke primero hay ke "escapar" o kitar del texto los quotes... pero debemos dejar unas marcas... para restaurarlos despues....

una ves ke tengas echo esto, ya... contabilizas (pero restas la longitud de los marcadores, si hay...) o no?
  #5 (permalink)  
Antiguo 15/05/2008, 10:46
Avatar de ldp
ldp
 
Fecha de Ingreso: marzo-2005
Ubicación: Por fin, en mi nueva casa!
Mensajes: 617
Antigüedad: 19 años, 1 mes
Puntos: 3
Re: Necesito ayuda con strlen

He probado con:

Código PHP:
$txt_sin_cita=preg_replace("#\[quote([a-z0-9]+)=(.*?)\](.*)\[/quote([a-z0-9]+)\]#si"""$_POST['reply']);
add_gold($pref['gold_reply'] / 50 strlen($txt_sin_cita), USERID); 
Pero no va bien porque me cuenta siempre 14 caracteres. El sistema de cita de mi foro es así:

[quote1210868859=usuario]
texto citado
[/quote1210868859]
  #6 (permalink)  
Antiguo 15/05/2008, 11:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Necesito ayuda con strlen

permiteme...

Código PHP:
$post=preg_replace('/\[(quote[^\]=]*)=(.+?)\](.+?)\[\/\\1\]/is'''$post); // sin importar que sistema de quotes uses... 
experimenta y me avisas...
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:44.