← Desenvolvimento

PHP - Dúvida em relação a eregi_replace

Lida 5074 vezes

Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Boas! Tenho um script de chat em php que contem o seguinte código:

Citar
$udata[2] = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)','<a href="\\1">\\1</a>', $udata[2]);

        $udata[2] = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)','\\1<a href="http://\\2">\\2</a>', $udata[2]);


Para quem não reparou, é o exerto do código em que quando um utilizador na sala de chat escreve um URL, este aparece como um link.

A minha dúvida é a seguinte:
     Como é que faço para que apareça um link predefinido por mim (por exemplo para a minha página principal) ou até mesmo um texto, em vez de aparecer o link que o utilizador escreveu?

Será que me basta alterar a parte '<a href="\\1">\\1</a>', $udata[2]); e  '\\1<a href="http://\\2">\\2</a>', $udata[2]);

Agradecia imenso a ajuda!
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Pois... mas em pt.php.net não encontrei nada de mais, apenas como fazer o que eu ja sei.

Esperava uma resposta mais esclarecedora acerca do assunto.  
:roll:

Alguem sabe?
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

Citação de: "cenourinha"
ou isto > http://mais-trafego.info/comunidade/profile.php?mode=viewprofile&u=135


tá boa, tá! :lol:

=IceBurn=, muito sinceramente, nunca vi um eregi assim... a permitir #$%?

bem, deixa lá. agora, olhando para ele, parece-me que basta trocar o <a href="http://\\2">\\2</a> por <a href="o link aqui">\\2</a>

e aparece o texto xxx com o link para o teu site.

penso eu de que! :wink:
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Citação de: "morpheus"
penso eu de que! :wink:


Tu pensas?  :shock:

 :lol:
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

de vez em quando! :lol:

quando estou bem disposto! ;)
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Obrigado morpheus! :wink:
Infelizmente o servidor k aloja o meu site tá a ser vítima de um ataque DDoS e não consigo aceder, logo k a situação  estiver resolvida faço a alteração.
Offline

fpware 
Fundador
Mensagens 15318 Gostos 7
Troféus totais: 38
Trófeus: (Ver todos)
Linux User Mobile User Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5

=IceBurn=, bem-vindo ao +tráfego!  :D
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

na boa! tens tempo. nós não vamos a lado nenhum!
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Obrigado a todos.
É bom saber que existe aqui um grupo de pessoas a ajudarem-se mútuamente.
Continuem com o bom trabalho e contem com mais um "cliente" assíduo do +Tráfego.
 8)
Offline

OFFICER 
Membro
Mensagens 2076 Gostos 0
Troféus totais: 29
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

Não chamaria cliente mas sim um utilizador assíduo, pois aqui não se vende nada, dá-se!  :lol:
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Citação de: "OFFICER"
Não chamaria cliente mas sim um utilizador assíduo, pois aqui não se vende nada, dá-se!  :lol:


Sim, daí as " " na  palavra cliente.  :wink:
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Morpheus. alterei o código da seguinte forma:

Citar
$udata[2] = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)','LiveChat - The Right Place To Be!', $udata[2]);
        $udata[2] = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)','LiveChat - The Right Place To Be!', $udata[2]);


Achas que tá correcto assim?
Offline

morpheus 
Membro
Mensagens 1199 Gostos 0
Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 1000 Posts

não prometo (não testei) mas a olho punha antes:

para aparecer o link correcto e texto alterado:
Código: [Seleccione]
$udata[2] = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)','<a href="\\1">O_TEXTO_AQUI</a>', $udata[2]);

$udata[2] = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)','\\1<a href="http://\\2">O_TEXTO_AQUI</a>', $udata[2]);



para aparecer o link alterado e texto correcto:

Código: [Seleccione]
$udata[2] = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)','<a href="O_LINK_AQUI">\\1</a>', $udata[2]);

$udata[2] = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)','\\1<a href="http://O_LINK_AQUI">\\2</a>', $udata[2]);
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Obrigado Morpheus.
No entanto esqueci-me de dizer que mudei de "estratégia" e quero que quando um utilizador do chat tentar inserir um URL, apareça apenas o meu texto (que neste caso é "LiveChat - The Right Place To Be!") sem link nenhum.  
Agora a minha dúvida é se neste caso em concreto está teoricamente correcto inserir o meu texto com os respectivos espaços...

Questiono-me se terei que utilizar algo como UM_TEXTO_ASSIM, ou UM%20TEXTO%20ASSIM, ou UM&nbsp;TEXTO&nbsp;ASSIM....
Não sei se me faço entender... :roll:
Eu penso tá correcto como eu meti, porque não me deu erro, mas gostava de uma certeza vinda de um expert como tu.