Foros del Web » Programando para Internet » PHP »

Actualizar codigo PHP

Estas en el tema de Actualizar codigo PHP en el foro de PHP en Foros del Web. Este código tiene como objectivo que los bbcodes sean visibles pero al momento de que alguien pone cualquier bbcode sale este error: Código: Error Message: ...
  #1 (permalink)  
Antiguo 30/09/2011, 18:15
 
Fecha de Ingreso: diciembre-2009
Mensajes: 42
Antigüedad: 14 años, 3 meses
Puntos: 0
Actualizar codigo PHP

Este código tiene como objectivo que los bbcodes sean visibles pero al momento de que alguien pone cualquier bbcode sale este error:

Código:
Error
Message: Function eregi_replace() is deprecated
Al parecer porque el codigo PHP que esta actualmente no es compatible con la ultima version 5.3. Este es el codigo:

Código:
function bbcode($text)
{
	// First: If there isn't a "[" and a "]" in the message, don't bother.
	$text = ' ' . nl2br($text);
	if ( !( strpos( $text, "[" ) && strpos( $text, "]" ) ) ) return $text;	 

	$text = stripslashes( $text);
	$text = preg_replace( "/\\[b\\](.+?)\[\/b\]/is", '<b>\1</b>', $text);
	$text = preg_replace( "/\\[C\\](.+?)\[\/C\]/is", '<span align="center">\1</span>', $text);
	$text = preg_replace( "/\\[i\\](.+?)\[\/i\]/is", '<i>\1</i>', $text);
	$text = preg_replace( "/\\[u\\](.+?)\[\/u\]/is", '<u>\1</u>', $text);
	$text = preg_replace( "/\[s\](.+?)\[\/s\]/is", '<s>\1</s>', $text);
	$text = @eregi_replace( "\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]", "<a href=\"\\1\">\\2</a>", $text);
	$text = @eregi_replace( "\\[url\\]([^\\[]*)\\[/url\\]", "<a href=\"\\1\">\\1</a>", $text);
	return $text;
}
Me podrian ayudar a que sea compatible o a actualizarlo?
  #2 (permalink)  
Antiguo 30/09/2011, 18:17
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: Actualizar codigo PHP

Claro debes de usar en lugar de eregi_replace, preg_replace, y tiens que usar una expresión regular valida
  #3 (permalink)  
Antiguo 30/09/2011, 18:24
 
Fecha de Ingreso: diciembre-2009
Mensajes: 42
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Actualizar codigo PHP

Cita:
Iniciado por GatorV Ver Mensaje
Claro debes de usar en lugar de eregi_replace, preg_replace, y tiens que usar una expresión regular valida
Me podrías decir como quedaria el codigo editado, soy un poco novato :p
  #4 (permalink)  
Antiguo 30/09/2011, 18:41
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: Actualizar codigo PHP

Mejor te paso una referencia: http://www.forosdelweb.com/f18/aport...s-pcre-646110/ soy un poco flojo para hacerle el trabajo a otros :p
  #5 (permalink)  
Antiguo 30/09/2011, 20:30
 
Fecha de Ingreso: diciembre-2009
Mensajes: 42
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Actualizar codigo PHP

Cita:
Iniciado por GatorV Ver Mensaje
Mejor te paso una referencia: [url]http://www.forosdelweb.com/f18/aporte-expresiones-pcre-646110/[/url] soy un poco flojo para hacerle el trabajo a otros :p

No entiendo :l

Reemplaze eso y ahora tengo este error:

Código:
Error
Message: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash
Te agradeceria de antemano si me ayudaras a editar el código, gracias.
  #6 (permalink)  
Antiguo 01/10/2011, 14:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Actualizar codigo PHP

Parece que no leíste todo

Cita:
NOTA: solo el parámetro de patron debe llevar separadores familiares entre si, ademas de no ser reservados (se pueden usar, pero solo si no se usan en la expresión) si se usa con las funciones mencionadas preg_*
@expresión regular@
/expresión regular/

debes usar delimitadores con preg_match

http://www.php.net/manual/es/regexp....delimiters.php
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 01/10/2011, 15:55
 
Fecha de Ingreso: diciembre-2009
Mensajes: 42
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Actualizar codigo PHP

Gracias por la ayuda, sin embargo, no entiendo ni lo básico ... pero bueno, quisiera que me ayudaran a reconstruir/editar en pocas palabras el siguiente codigo:
[CODE]
$text = @eregi_replace( "\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]", "<a href=\"\\1\">\\2</a>", $text);
$text = @eregi_replace( "\\[url\\]([^\\[]*)\\[/url\\]", "<a href=\"\\1\">\\1</a>", $text);
return $text;
}[/CODE]

Para que no me de el siguiente error:
[CODE]Message: Function eregi_replace() is deprecated[/CODE]

Es el bbcode [url] [/url]


Gracias!
  #8 (permalink)  
Antiguo 01/10/2011, 22:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Actualizar codigo PHP

A ver, si buscas en google: php bbcode preg_replace [url] [/url], el primer resultado sera el manual de PHP para preg_replace() y, por suerte, en los comentarios hay un ejemplo que es exactamente lo que necesitas, publicado el 1-ene de 2009
__________________
- León, Guanajuato
- GV-Foto

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 00:11.