|
|
·
Skindario
Buscar en el Foro Buscar Tags
Portal
Foro
Usuario
Foro
Normas
RSS
Etiquetas
Avatares
Rangos
Eventos
Staff
Entrevistas
Noticias
Caretos
F.A.Q
Subforos Privados
Estadisticas
Estadisticas
Usuarios
OnLine
Actividad
Funciones
Favoritos
P. Inicio
Imprimir
Buscar
Afiliados
¿Tu Web Aquí?
Comunidad ESDLA
Foros DWP
Websmasters Foro
Mundo Deluxe
Photosherox
Descargas-V
Enlázanos

i
Pequeña ayudida con un "filtro".
 
Portal · Foros · Zona Webmasters · PHP
Noticias · Buscar · Tags · Imágenes · Usuarios · Fisgona
Ir a la página: 1 · 2 · última
23 mensajes. Página 1 de 2
Autor Mensaje 
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#1 ·
Pequeña ayudida con un "filtro".

Hola!

Tengo una pequeña duda. De partida, si digo filtro, es por que no se me ocurrio algo mejor para definir mi problemita.
Bueno, el caso es el siguiente.

En mi web tengo un foro phpBB, al cual le instalé un MOD para publicar articulos. Pero en la portada y diversas partes de la web, hay varios script que muestran las ultimas publicaciones.

Por ejemplo:

http://anistation.net/noticias/

El problema, como se puede ver, esta en la ultima publicacion...Cuando en el articulo utilizo el BBCODE para poner negrita, poner enlaces y cosas así, en la pagina que se ve arriba, se ve que en la descripcion aparecen caracteres como.

[b:3af4cd9096][/b:3af4cd9096] Cuando es Negrita O
[URL][/URL] Cuando es enlace

Mi pregunta es, ¿Como se hace, para que en el caso que apareciera uno de esos caracteres, se suprima y aparesca como las noticias de abajo?.

Intente hacerlo con los IF pero no resulto, alguna ayudita por favor.
Gracias de antemano =)

06/Ago/2008 04:28 GMT+1
NEOXGEOX
Webmaster Positivo
Webmaster Positivo

Haz clic para ver el perfil del usuario
Mensajes: 735
Desde: 28/Sep/2005
#2 ·
RE: Pequeña ayudida con un "filtro".

Y si en vez de utiluizar bbcode, utilizas HTML, tal vez funcione.




07/Ago/2008 16:44 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#3 ·
RE: Pequeña ayudida con un "filtro".

x'D

No es la idea.

Okey, miren, intente hacerlo así:

Código:
    $desc = substr(stripslashes($article['article_text']),0,125);
    if($desc == "[b:$bbid]") { $desc = "<b>"; }

Donde $bbid es la id del bbcode usado en cada articulo, puede verse aqui:

http://anistation.net/nuevo.php

Pero no se como hacer que cuando la variable $desc contenca caracteres del tipo [b:bbid], [img:bbid], [size:bbid], etc.

Los suprima de preferencia.

¿Alguna sugerencia?


30/Ago/2008 03:03 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#4 ·
RE: Pequeña ayudida con un "filtro".

En internet he buscado harto, pero solo he visto funciones que reemplazan caracteres...no que las borren.

 

Ayuda por favor.


30/Ago/2008 04:59 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#5 ·
RE: Pequeña ayudida con un "filtro".

Reemplazar y borrar es lo mismo. Si reemplazas por un carácter vacío. Has de reemplazarlo en php antes de cargarlo.

Tienes que aprender a usar bbcode con un campo dinámico (que será la id).




Por poner un ejemplo:

Código:
$texto = preg_replace("\[b:(.*)\]/(.*)\[/b\]", '$2', $texto);


El id y el [b] lo suprimimos, dejamos solo $2 que es lo que está dentro de [b:id]

 

PD: El código lo acabo de escribir, igual se me ha ido algún carácter y está mal, de todas formas es sólo para ilustrar.


04/Sep/2008 23:04 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#6 ·
RE: Pequeña ayudida con un "filtro".

A ver si entiendo:

La id del bbcode la tengo, en la variable $bbid. Ahora, si mi variable que contiene el texto es $desc.

El codigo quedaria?

$desc = preg_replace("\[b:(.*)\]/(.*)\[/b\]", '$bbid', $desc);

 

Sorry, no entiendo mucho T.T


05/Sep/2008 05:20 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#7 ·
RE: Pequeña ayudida con un "filtro".

Quedaría:

$desc = preg_replace("\[b:(.*)\]/(.*)\[/b\]", '$2', $desc);

Al menos, eso creo. Pruébalo.

05/Sep/2008 06:41 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#8 ·
RE: Pequeña ayudida con un "filtro".

Dió error, dice:

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in /home/myless/public_html/nuevo.php on line 46

 

¿Que puede ser?


05/Sep/2008 13:16 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#9 ·
RE: Pequeña ayudida con un "filtro".

Prueba con
$desc = preg_replace("[b:(.*)](.*)[/b]", '$2', $desc);

Si no funciona reviso el preg_replace, pero debería funcionar.

05/Sep/2008 16:07 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#10 ·
RE: Pequeña ayudida con un "filtro".

Lo siento, ahora dice:

 

Warning: preg_replace() [function.preg-replace]: Unknown modifier '(' in /home/myless/public_html/nuevo.php on line 46

 

En todo caso, el codigo que me hiciste borraria el [b:$bbid] ¿verdad?. En el caso que funcione, para borrar el [img:$bbid] sería:

 

$desc = preg_replace("[img:(.*)](.*)[/img]", '$2', $desc);

 

Y así susesivamente hasta borrar todos los bbcodes ¿no?

 

Gracías de antemano =).


05/Sep/2008 22:44 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#11 ·
RE: Pequeña ayudida con un "filtro".

Sí, en efecto. Esa es la idea. Ahora sólo hay que buscar cómo es el código correcto.

He encontrado este:
$desc = preg_replace("`\[b:(.*)?\](.*)?\[/b\]`is", "$2", $desc);

Si no funciona, empieza por quitar los ` y si sigue sin funcionar, podría intentar encontrarte otro o puedes buscar tú en google y aprender cómo funciona preg_replace.

06/Sep/2008 04:01 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#12 ·
RE: Pequeña ayudida con un "filtro".

Hola.

 

Prové el ultimo codigo, no dió error, pero no elimino el bbcode.

Estuve viendo y prové con este:

 

$desc = preg_replace("[b:$bbid]", "$2", $desc);

 

Y funcionó mas o menos, elimina b:id_del bbecode, pero al imprimir aparece [], por lo tanto no lo elimina por completo

Ayuda please T_____T


06/Sep/2008 04:49 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#13 ·
RE: Pequeña ayudida con un "filtro".

Si lo vas a hacer así, prueba esto:

$desc = preg_replace("[b:$bbid]", "", $desc);
Te interesa borrarlo por completo no sustituirlo por $2

06/Sep/2008 20:09 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#14 ·
RE: Pequeña ayudida con un "filtro".

Tambien lo intenté así. y el resultado fue el mismo, ya no se que hacer x'D.

 

Mira, así quedo:

http://anistation.net/nuevo.php


06/Sep/2008 21:06 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#15 ·
RE: Pequeña ayudida con un "filtro".

Me sale acceso denegado.

 

¿El código es muy largo? ¿Podría verlo entero?


07/Sep/2008 01:18 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#16 ·
RE: Pequeña ayudida con un "filtro".

Jaja Sorry, es que estaba provando otros script, mira, este es el codigo:

Código:
<?php

//limite de sacadas de la base de datos
$limit = 100;

$result = mysql_query("SELECT a.article_id, a.chapter_id, a.time, t.article_title, t.article_text, t.article_id, t.articulos_icon, t.bbcode_uid, c.chapter_name, c.chapter_parent_id, c.chapter_name
                        FROM phpbb_cms_articles a
                        INNER JOIN phpbb_cms_articles_text t on a.article_id = t.article_id
                        INNER JOIN phpbb_cms_chapters c on a.chapter_id = c.chapter_id
                        WHERE a.chapter_id=33
                        ORDER BY a.time desc
                        LIMIT $limit") or die(mysql_error());

$color = 0;
while($article = mysql_fetch_array($result))
{
    //titulo de los articulos
    $titulo = substr(stripslashes($article['article_title']),0,37);
    
    //bbcode uid
    $bbid = $article['bbcode_uid'];

    // ID de los articulos
    $id = $article['article_id'];
    
    //iconos de los articulos    
    $icono = $article['articulos_icon'];

    //descripcion de los articulos
    $desc = substr(stripslashes($article['article_text']),0,125);
    $desc = preg_replace("[img:$bbid]", "", $desc);
    $desc = preg_replace("[b:$bbid]", "", $desc);
    
    //url de la web
    $url_path = "http://anistation.net/";
    
    //nombre de la categoria
    $pname = $article['chapter_parent_id'];
    if($pname == 7) { $pname = "Anime"; }
    if($pname == 22) { $pname = "Manga"; }
    if($pname == 27) { $pname = "Juegos"; }
    if($pname == 35) { $pname = "Películas"; }
        
    //nombre de la categoria
    $cname = $article['chapter_name'];
    
    //fecha
    $time = $article['time'];
    
    $fecha = getdate($time);
    $d = $fecha['mday'];
    $m = $fecha['mon'];
    $a = $fecha['year'];
    if($m < 10) { $m = "0".$m; }
    if($d < 10) { $d = "0".$d; }

        if($color == 0){
        echo"<div align='center'>
  <center>
  <table border='0' width='447' cellpadding='0' bgcolor='#FFFFFF' cellspacing='0'>
    <tr>
      <td width='123' bgcolor='#3770B1' background='http://anistation.net/images/design/center/last_updates/bg_news_2.jpg'><div align='center'>
  <center>
  <table border='0' width='106' height='80' cellspacing='0' cellpadding='0'>
    <tr>
      <td width='100%' background='http://anistation.net/images/design/center/last_updates/bg_news_2.jpg'><p align='center'><a href='http://anistation.net/novedades/ver_noticia.php?aid=$id' title='$titulo'><img border='0' src='$icono' width='100' height='74'></a></td>
    </tr>
  </table>
  </center>
</div>
</td>
      <td width='631' valign='top' background='http://anistation.net/images/design/center/last_updates/bg_news_2.jpg'><font color='#FFFFFF'><b><font size='2' face='Verdana'>&nbsp;<img border='0' src='http://anistation.net/images/design/menu/arrow.gif' width='8' height='7'></font></b><font size='2' face='Verdana'><b>$pname</b></font><font size='2' face='Verdana'>|
        $d|$m|$a</font></font><br><font color='#FFFFFF'><b>&nbsp;<img border='0' src='http://anistation.net/images/design/menu/arrow.gif' width='8' height='7'></b></font><font face='Verdana' size='2'><a href='http://anistation.net/novedades/ver_noticia.php?aid=$id' title='$titulo'><font color='#FFFFFF'><b>$titulo</b></font></a><br><font color='#FFFFFF'>$desc...</font></font></td>
    </tr>
  </table>
  </center>
</div>
<div align='center'>
  <center>
  <table border='0' width='100' cellspacing='0' cellpadding='0'>
    <tr>
      <td width='100%'><img border='0' src='http://anistation.net/images/design/center/last_updates/linea_punteada.jpg' width='447' height='5'></td>
    </tr>
  </table>
  </center>
</div>";
        }

        if($color == 1){
        echo"<div align='center'>
  <center>
  <table border='0' width='447' cellpadding='0' bgcolor='#3770B1' cellspacing='0'>
    <tr>
      <td width='119' bgcolor='#FFFFFF' background='http://anistation.net/images/design/center/last_updates/bg_news.jpg_2'><div align='center'>
  <center>
  <table border='0' width='106' height='80' cellspacing='0' cellpadding='0'>
    <tr>
      <td width='100%'><p align='center'><a href='http://anistation.net/novedades/ver_noticia.php?aid=$id' title='$titulo'><img border='0' src='$icono' width='100' height='74'></a></td>
    </tr>
  </table>
  </center>
</div>
</td>
      <td width='635' valign='top' background='http://anistation.net/images/design/center/last_updates/bg_news_blanco.jpg'><font color='#3770B1'><b><font size='2' face='Verdana'>&nbsp;<img border='0' src='http://anistation.net/images/design/menu/arrow.gif' width='8' height='7'></font></b><font size='2' face='Verdana'><b>$pname
        </b>|</font><b><font size='2' face='Verdana'> </font></b><font size='2' face='Verdana'>$d|$m|$a</font></font><br><font color='#3770B1'><b>&nbsp;<img border='0' src='http://anistation.net/images/design/menu/arrow.gif' width='8' height='7'></b></font><font face='Verdana' size='2'><a href='http://anistation.net/novedades/ver_noticia.php?aid=$id' title='$titulo'><font color='#3770B1'><b>$titulo</b></font></a><br><font color='#3770B1'>$desc...</font></font></td>
    </tr>
  </table>
  </center>
</div>
<div align='center'>
  <center>
  <table border='0' width='100' cellspacing='0' cellpadding='0'>
    <tr>
      <td width='100%'><img border='0' src='http://anistation.net/images/design/center/last_updates/linea_punteada2.jpg' width='447' height='5'></td>
    </tr>
  </table>
  </center>
</div>";
        }
        
 if($color == 0)
 { $color = 1; }
 else
 { $color = 0; }
}
 
 
//mysql_close($conexion);
?>

 


07/Sep/2008 02:07 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#17 ·
RE: Pequeña ayudida con un "filtro".

He estado provando y no consigo borrarlo completamente... T.T


07/Sep/2008 21:47 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#18 ·
RE: Pequeña ayudida con un "filtro".

Me sigue saliendo acceso denegado. Quiero ver qué es lo que quieres quitar.

08/Sep/2008 07:04 GMT+1
Overlick
Webmaster Habitual
Webmaster Habitual


Mensajes: 41
Desde: 30/Ene/2007
#19 ·
RE: Pequeña ayudida con un "filtro".

El script que deje arriba, se ve así:

 

http://anistation.net/quitar.php

 

 


08/Sep/2008 22:57 GMT+1
EffectedCard
Administrador
Administrador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 9.272
Desde: 16/Oct/2004
#20 ·
RE: Pequeña ayudida con un "filtro".

¿Puedes ponerlo sin ningún preg_replace y te doy yo uno completo (para lo que veo) y comprobamos cómo funciona?

08/Sep/2008 23:06 GMT+1
Ir a la página: 1 · 2 · última
23 mensajes. Página 1 de 2
Haz clic para ir al tema anterior Haz clic para ir al tema siguiente
Portal · Foros · Zona Webmasters · PHP
Temas similares
No se han encontrado temas similares
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  

TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Todas las fechas y horas son GMT+1. Ahora son las 01:29

Afiliados Plus
Skindario - Soporte Webmasters, Diseño Grafico, Miarroba, Rol + RPG y Mucho Mas TuarrobaGames - Emuladores, Roms, Juegos y RPG TuarrobaEbooks - Ebooks en castellano y Audiolibros Websmasters foro MundoDeluxe Photosherox - Diseñando & Aprendiendo
¿Tu Web Aquí?
Admin: EffectedCard - Skindario, foro soporte de Tuarroba desde el 16/10/04