Formatear Urls en comentarios de un blog con PHP

Es habitual tener sistemas de comentarios en nuestras páginas y blogs, ya sean propios o de terceros, que insertan los comentarios de los usuarios en modo de texto, de forma que cuando estos introducen una url o link, este no es clickable. De hay que sea buena idea formatear/parsear esas urls para convertirlas en links.

Tenemos dos posibles vías de hacerlo, una es grabar el comentario en la Base de Datos con los links formateados y otra es grabarlo tal cual lo pusieron y a la hora de mostrarlo, formatear los links, en ambos casos hay que procesar el texto del comentario para detectar enlaces y convertirlos.

Para ello, propongo el siguiente código, que si bien se puede condensar en menos líneas, lo muestro a pasos por cuestiones didácticas:

$reg_exUrl = "/((((http|https)\:\/\/)|www\.)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4}(\/\S*)?)/";
        
$comentario =  preg_replace( $reg_exUrl, "<a rel='nofollow' href=\"$1\">$1</a> ", $comentario );
        
$comentario = str_replace("<a rel='nofollow' href=\"www", "<a rel='nofollow' href=\"http://www", $comentario);
$comentario = str_replace(">http://", ">", $comentario);
$comentario = str_replace(">https://", ">", $comentario);
$comentario = str_replace(">www.", ">", $comentario);
$comentario = str_replace("%20", " ", $comentario);    

Comenzamos con una expresión regular que nos identifica en el texto las partes que cumplan el patrón de una url, para acto seguido introducir por delante y detrás de esas partes el etiquetado típico de un link.

El link lo fijamos como rel=’nofollow’, ya que es un sistema de comentarios, mucha gente sólo escribe para promocionar sus webs, y no es necesario estar cediendo PageRank a infinidad de páginas que ni conocemos personalmente.

La 3ª línea la ponemos para evitar urls que no incorporen http:// delante, pues de lo contrario y dependiendo de la programación de cada web, es posible que al hace click al link, este intentase cargarse desde la url relativa desde donde se muestra, lo cual no es precisamente lo que se desea.

Las 4 últimas líneas son sólo para embellecer el texto del enlace mostrado, es decir, cuestiones meramente estéticas, quitarle el inicio de la url y poner espacios en vez de su equivalente %20

Y así nos quedaría un link una vez formateado:

enlace-formateado-comentario

 

412 visitas.

13 comentarios sobre “Formatear Urls en comentarios de un blog con PHP

  1. Hi,

    Do you know that your WordPress site muchocodigo.com is very slow to load and that you lose visitors, leads and customers every day?

    We have already optimized more than 2000 sites since 2015, why not yours? : http://swella.xyz/AoECM

    Best Regards,

    Alton

  2. Hello there

    Be Free from Neck Pain
    Try NeckFlexer & Relieve Neck Pain Effortlessly In 10 Min!
    Save 50% OFF + FREE Worldwide Shipping

    Shop Now: neckflexer.online

    ✅ Designed By Doctor & Chiropractor
    ✅ Ergonomic Design – Fits Everyone
    ✅ Circulation To Head
    ✅ Stimulating Key Result Area

    Thank You,

    Compartiendo codigo… – Programación y ejemplos de código – muchocodigo.com

  3. Hi there

    Body Revolution – Medico Postura™ Body Posture Corrector
    Improve Your Posture INSTANTLY!
    Get it while it’s still 50% OFF!
    FREE Worldwide Shipping!

    Get yours here: medicopostura.online

    All the best,

    Compartiendo codigo… – Programación y ejemplos de código – muchocodigo.com

  4. Good Morning

    Defrost frozen foods in minutes safely and naturally with our THAW KING™.

    50% OFF for the next 24 Hours ONLY + FREE Worldwide Shipping for a LIMITED time

    Buy now: thawking.online

    Kind Regards,

    Compartiendo codigo… – Programación y ejemplos de código

  5. Hi, We are wondering if you would be interested in our service, where we can provide you with a dofollow link from Amazon (DA 96) back to muchocodigo.com?

    The price is just $77 per link, via Paypal.

    To explain what DA is and the benefit for your website, along with a sample of an existing link, please read here: https://pastelink.net/1nm60

    If you’d be interested in learning more, reply to this email but please make sure you include the word INTERESTED in the subject line field.

    Kind Regards,
    Claudia

  6. Hi

    CAREDOGBEST™ – Personalized Dog Harness. All sizes from XS to XXL. Easy ON/OFF in just 2 seconds. LIFETIME WARRANTY.

    Click here: caredogbest.online

    Sincerely,

    Compartiendo codigo… – Programación y ejemplos de código – muchocodigo.com

  7. Hi

    Wear with intent, live with purpose. Fairly priced sunglasses with high quality UV400 lenses protection only $19.99 for the next 24 Hours ONLY.

    Order here: kickshades.online

    Kind Regards,

    Compartiendo codigo… – Programación y ejemplos de código

  8. Hi,

    We’re wondering if you’ve ever considered taking the content from muchocodigo.com and converting it into videos to promote on social media platforms such as Youtube?

    It’s another ‘rod in the pond’ in terms of traffic generation, as so many people use Youtube.

    You can read a bit more about the software here: https://bit.ly/326uaHS

    Kind Regards,
    Cassandra

  9. Seré breve¶¶GOOGLE VALORA MUCHO los enlaces que llevan visitas a tu web¶¶…y eso es lo que hace ¶¶https://www.vitalinkpro.com¶¶Por SOLO 10€ lo puedes comprobar¶¶¡¡Entra y te explicamos cómo lo conseguimos!!

  10. This Google doc exposes how this scamdemic is part of a bigger plan to crush your business and keep it closed or semi-operational (with heavy rescritions) while big corporations remain open without consequences. This Covid lie has ruined many peoples lives and businesses and is all done on purpose to bring about the One World Order. It goes much deeper than this but the purpose of this doc is to expose the evil and wickedness that works in the background to ruin peoples lives. So feel free to share this message with friends and family. No need to reply to the email i provided above as its not registered. But this information will tell you everything you need to know. https://docs.google.com/document/d/1OHEkz1mmVAldXj8Y2yecebbTXD8kdAyv-QNI4BXCnQY/edit

Responder a Mary Laidler Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *