RL @PHP para vincular com Regex
Sei que já vi isso ser feito em muitos lugares, mas preciso de algo um pouco mais diferente do que a norma. Infelizmente, quando eu procuro isso em qualquer lugar, ele fica enterrado em posts sobre como fazer o link em um link de tag html. Eu quero que a função PHP retire "http: //" e "https: //" do link, assim como qualquer coisa após o. *, Então basicamente o que estou procurando é transformar A em B.
A: http://www.youtube.com/watch?v=spsnQWtsUFM
B: <a href="http://www.youtube.com/watch?v=spsnQWtsUFM">www.youtube.com</a>
Se isso ajudar, aqui está a minha função atual de substituição de regex do PH
ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\" class=\"bwl\" target=\"_new\">\\0</a>", htmlspecialchars($body, ENT_QUOTES)));
Provavelmente também seria útil dizer que não tenho absolutamente nenhum entendimento em expressões regulares. Obrigado
EDIT: Quando inseri um comentário como esteblahblah <a href="https://www.facebook.com/?sk=ff&ap=1" rel="nofollow">https://www.facebook.com/?sk=ff&ap=1</a> blah
Recebo html assim<a class="bwl" href="blahblah <a href="https://www.facebook.com/?sk=ff&ap=1" rel="nofollow">https://www.facebook.com/?sk=ff&ap=1</a> blah">www.facebook.com</a>
, que não funciona de todo, pois leva o texto ao redor do link. Funciona muito bem se alguém apenas comenta um link. Foi quando mudei a função para este
preg_replace("#^(.*)//(.*)/(.*)$#",'<a class="bwl" href="\0">\2</a>', htmlspecialchars($body, ENT_QUOTES));