• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

triplexim32

[bbcode]Duvida replace de URL's numa string

10 mensagens neste tópico

Quero fazer replace de links, tipo se eu tiver isto:

www.google.pt ou http:\\www.google.pt

ficar isto [ url]www.google.pt[/url]

mas tenho que ter em conta que se tiver isto

[ img]www.google.pt[ /img]

Aqui o replace não pode ser feito.

Alguma sugestão?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta isto:

preg_replace('\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', '[url]\0[/url]', $text);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta isto:

preg_replace('\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', '[url]\0[/url]', $text);

tenho assim:

$message = preg_replace('\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', '\0', $message);

ta a dar este erro:

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in /home/host/public_html/include/functions.inc.php on line 595

BTW o que faz o \b?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta isto.

$message = preg_replace('\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', '[url]\0[/url]', $message);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta isto.

$message = preg_replace('\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', '[url]\0[/url]', $message);

Continua a dar o mesmo erro  e é so nessa linha ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Expressões regulares são uma coisa complicada de aprender, mas depois de se aprender e "masterizar" são algo bastante útil.

Sugiro que leias sobre os parametros disponíveis, e que procures exemplos práticos para cada caso, de modo a aprenderes mais sobre o assunto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Expressões regulares são uma coisa complicada de aprender, mas depois de se aprender e "masterizar" são algo bastante útil.

Sugiro que leias sobre os parametros disponíveis, e que procures exemplos práticos para cada caso, de modo a aprenderes mais sobre o assunto.

Pois eu ja tive a ver algumas coisas, mas há tantas maneiras de fazer uma cena que eu fico confuso.

O que me dava mais jeito neste momento era fazer isto:

Não pode existir o caracter "]" (http:\\www OU www).site.com

Mas não consigo fazer o que esta a vermelho :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

os parentesis rectos são caracteres especiais em regex, como tal tens que os escapar.

ex:

"\[" VALIDO

"[" INVALIDO

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora