Foros del Web » Programando para Internet » PHP »

bbcode php

Estas en el tema de bbcode php en el foro de PHP en Foros del Web. hola que tal estoy buscando alguna solucion a esto, resulta que en mi editor tengo que poner [url ] LINK [ /url] pero como hago ...
  #1 (permalink)  
Antiguo 13/04/2014, 22:22
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Pregunta bbcode php

hola que tal estoy buscando alguna solucion a esto, resulta que en mi editor tengo que poner

[url ] LINK [ /url]

pero como hago para que solamente en el editor ponga

LINK

y ya se vea el link directamente sin usar bbcode, tengo esta estructura

Código PHP:
$texto preg_replace('/\[url\](.*)\[\/url\]/Usi''<a href="\\1" rel="nofollow" target="_blank">\\1</a>'$texto); 
  #2 (permalink)  
Antiguo 14/04/2014, 00:31
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: bbcode php

Yo lo pondría de esta manera, pruebalo y dime como te va:

Código PHP:
Ver original
  1. $texto = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/is", "<a href=\"$1\" target=\"_blank\">$2</a>", $texto);
  #3 (permalink)  
Antiguo 14/04/2014, 14:00
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: bbcode php

gracias por tu respuesta, pero no me lo transforma como un link queda como un texto normalmente...
  #4 (permalink)  
Antiguo 14/04/2014, 15:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: bbcode php

¿Y qué tal así?

Código PHP:
Ver original
  1. $bbcode = '[url="http://www.google.com"]Google[/url]';
  2. echo preg_replace('/\[url=(.*?)\](.*?)\[\/url\]/is', '<a href=$1>$2</a>', $bbcode);

Saludos

EDITO:

Recién me doy cuenta de que la respuesta de MaNuX0218 es muy similar a la mía.
Creo que no te genera el enlace porque no creas el enlace BBCode como debe ser, es decir, dentro del primer [url], debes colocar el enlace y aparte debe estar el texto que indicas a continuación.

Sin embargo, si deseas dejarlo así, la solución sería la siguiente:

Código PHP:
Ver original
  1. $bbcode = '[url]http://www.google.com[/url]';
  2. echo preg_replace('/\[url\](.*?)\[\/url\]/is', '<a href="$1">$1</a>', $bbcode);
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 14/04/2014 a las 15:16
  #5 (permalink)  
Antiguo 14/04/2014, 22:53
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: bbcode php

gracias por tu respuesta, pero nesecito el codigo para no usar bbcode, que cuando pongo el link

Ejemplo: http://www.forosdelweb.com

ya lo tome como un link SIN USAR EL BBCODE

se entiende ? como aquí sin poner el bbcode ya toma el link automaticamente

gracias
  #6 (permalink)  
Antiguo 15/04/2014, 00:00
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: bbcode php

Bueno, eso no das a entender en el código que nos mostraste al principio. Fíjate bien en lo que escribes.

En ese caso, se me ocurre aplicar una expresión regular como esta:

Código PHP:
Ver original
  1. $url = "http://www.google.com";
  2. echo preg_match("/^http(s?):\/\/(\w+\.)?\w+\-?\.\w{2,6}(.*?)$/", $url) ? "<a href = '$url'>$url</a>" : $url;

Lo anterior imprime:

Código HTML:
Ver original
  1. <a href = 'http://www.google.com'>http://www.google.com</a>

La expresión regular, busca en la cadena, coincidencias con una URL clásica, como el "http://" o "https://" del inicio, un posible grupo de caracteres alfanuméricos seguido de un punto (por ejemplo: www.), otro grupo de caracteres alfanuméricos con un posible guion en medio (por ejemplo: mi-dominio), un punto y un conjunto de caracteres alfanuméricos que deben sumar un total mínimo de 2 y máximo 6 caracteres (por ejemplo: .com, .net, .uk). Pero además, dejo abierta la posibilidad de que haya un grupo más, que puede ser la ruta de recurso como en "www.mi-domino.com/libros/ejemplo.php".

DEMO

La expresión regular puede ser más compleja y eficiente, es solo una que se me ocurrió hacer, siendo ya la 1 am en mi país y a punto de irme a dormir.

Si no estás satisfecho con esta, busca otros ejemplos en internet para que puedas dar con una mejor, saludos.

EDITO:

Creo que esto se ajusta más a lo que buscas:

Código PHP:
Ver original
  1. $cadena = "Hola, visita http://www.google.com o http://www.facebook.com ahora mismo";
  2. echo preg_replace("/\b(https?:\/\/(\w+\.)?\w+\-?\.\w{2,6}(.*?))\b/is", "<a href = '$1'>$1</a>", $cadena);

Lo anterior imprime lo siguiente:

Código HTML:
Ver original
  1. Hola, visita <a href = 'http://www.google.com'>http://www.google.com</a> o <a href = 'http://www.facebook.com'>http://www.facebook.com</a> ahora mismo

Había olvidado que la \b, marca el inicio y final de una palabra, por lo tanto, si dentro de esos límites conservaba la expresión, entonces podría crear enlaces por cada URL que se encuentre en un texto.

DEMO

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 15/04/2014 a las 00:56 Razón: Mejoré mi algoritmo
  #7 (permalink)  
Antiguo 15/04/2014, 02:49
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: bbcode php

Ya casi estamos mira, solamente me toma una parte de la URL y no todo completa



usando este codigo

Cita:
echo preg_replace("/\b(https?:\/\/(\w+\.)?\w+\-?\.\w{2,6}(.*?))\b/is", "<a href = '$1'>$1</a>", $cadena);
  #8 (permalink)  
Antiguo 15/04/2014, 11:33
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: bbcode php

No se ve a qué parte te refieres.

Por favor, escribe la parte a la que haces mención.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 15/04/2014, 12:23
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: bbcode php

ahy esta en la imagen, lo que vez en naranja es la url que me toma, no esta completa osea no me toma toda la url

  #10 (permalink)  
Antiguo 15/04/2014, 12:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: bbcode php

Es que precisamente lo que no se ve es la imagen.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 15/04/2014, 15:19
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: bbcode php

ahh disculpa aqui te dejo el link de la imagen

http://fotos.subefotos.com/3d87b3118...994c77f8do.png
  #12 (permalink)  
Antiguo 15/04/2014, 15:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: bbcode php

Por alguna razón, no carga la imagen. Mejor coloca el resultado acá y resalta en rojo la parte a la que haces mención.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #13 (permalink)  
Antiguo 15/04/2014, 17:39
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: bbcode php

ok bueno mira el link es este

http://google.com.ar/algo

y lo que solamente me toma es lo que esta en negrita, osea lo que dice /algo no me toma como link, se entiende ?

http://google.com.ar/algo
  #14 (permalink)  
Antiguo 15/04/2014, 18:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: bbcode php

Mejoré la expresión:

Código PHP:
Ver original
  1. $cadena = "Hola, visita http://google.com.ar/algo/demo.php o http://www.facebook.com ahora mismo";
  2. echo preg_replace("/\b(https?:\/\/(\w+\.)?\w+\-?\.\w{2,6}(\S*)?)\b/is", "<a href = '$1'>$1</a>", $cadena);

Ahora toma todo lo que esté después del dominio.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #15 (permalink)  
Antiguo 15/04/2014, 19:07
Avatar de polarubi  
Fecha de Ingreso: noviembre-2008
Mensajes: 243
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: bbcode php

joya genio muchisimas gracias :D

Etiquetas: bbcode
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:42.