Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Link nel textarea in conflitto

    Con questi 2 codici faccio in modo che quando l'utente inserisce un url o mail nel textarea, questi diventano link in mezzo al testo, però sono in conflitto: per far funzionare uno, devo togliere l'altro

    Codice PHP:
    //Rende la MAIL linkabile nel campo messaggio
    $messaggio preg_replace("/([A-Za-z0-9!#$%&'*+\/=?^_~`{|}](([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*([-]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+)?(([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*[@][-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]+(\.[a-z]{2,6}))/","<a class=\"carattereText\" href=\"mailto:$0\">$0</a>",$messaggio);

    //Rende l'URL linkabile nel campo messaggio
    $messaggio preg_replace("/(ftp(s|es)?:\/\/|sftp:\/\/|http(s)?:\/\/|www\.)[-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]+(\.[a-z]{2,6})((\/)[-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]*)*/","<a class=\"carattereText\" href=\"$0\" target=\"_blank\">$0</a>",$messaggio); 

  2. #2
    In che senso
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Suppongo che la preg_replace() che viene eseguita per prima, quella per le email, gli rimpiazzi anche parte di eventuali link, rendendoli poi irriconoscibili alla seguente preg_replace().
    In tal caso però bisognerebbe rivedere la reg exp delle email che sarebbe sbagliata.

  4. #4
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Alhazred
    Suppongo che la preg_replace() che viene eseguita per prima, quella per le email, gli rimpiazzi anche parte di eventuali link, rendendoli poi irriconoscibili alla seguente preg_replace().
    In tal caso però bisognerebbe rivedere la reg exp delle email che sarebbe sbagliata.
    Se inserisco una mail e poi un url a video non appare niente. Se invece tolgo il codice della mail, a video appaiono entrambi ma solo quello dell url è linkabile.

    Ma non dovrebbero essere due codici indipendenti?

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    A me provando il tuo codice mi vengono fuori questi 2 errori

    per le email
    preg_replace() [function.preg-replace]: Unknown modifier '='

    per gli url
    preg_replace() [function.preg-replace]: Unknown modifier '/'

  6. #6
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Alhazred
    A me provando il tuo codice mi vengono fuori questi 2 errori

    per le email
    preg_replace() [function.preg-replace]: Unknown modifier '='

    per gli url
    preg_replace() [function.preg-replace]: Unknown modifier '/'
    Cosa significano?

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Niente, è il forum che toglie i caratteri di escape dai messaggi.
    Facendo copia/incolla del tuo codice compreso di escape (cliccando su quota appaiono) a me funziona correttamente.
    Penso tu abbia problemi da qualche altra parte.

    ho semplicemente fatto così
    Codice PHP:
    $messaggio 'bla bla bla [email]pippo@pippo.it[/email] e ancora bla bla www.unsito.it';

    $messaggio preg_replace("il_tuo_codice_per_email");

    $messaggio preg_replace("il_tuo_codice_per_url");

    echo 
    $messaggio

  8. #8
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Alhazred
    Niente, è il forum che toglie i caratteri di escape dai messaggi.
    Facendo copia/incolla del tuo codice compreso di escape (cliccando su quota appaiono) a me funziona correttamente.
    Penso tu abbia problemi da qualche altra parte.

    ho semplicemente fatto così
    Codice PHP:
    $messaggio 'bla bla bla [email]pippo@pippo.it[/email] e ancora bla bla [url]www.unsito.it[/url]';

    $messaggio preg_replace("il_tuo_codice_per_email");

    $messaggio preg_replace("il_tuo_codice_per_url");

    echo 
    $messaggio
    Fa anche questa prova: inserisci un url, poi una mail e poi ancora un url sempre nello stesso textarea

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ho usato questa stringa

    bla bla bla http://link.com, mail pippo@pippo.it e ancora bla bla www.unsito.it

    funziona regolarmente

  10. #10
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da Alhazred
    Ho usato questa stringa

    bla bla bla http://link.com, mail pippo@pippo.it e ancora bla bla www.unsito.it

    funziona regolarmente
    Ho provato coi tuoi link, a video non stampa niente, però ho guardato nel file-database e li ha scritto

    I codici sono sempre questi

    Codice PHP:
    //Rende la MAIL linkabile
    $messaggio preg_replace("/([A-Za-z0-9!#$%&'*+\/=?^_~`{|}](([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*([-]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+)?(([A-Za-z0-9!#$%&'*+\/=?^_~`{|}]*[.]?[A-Za-z0-9!#$%&'*+\/=?^_~`{|}]+))*[@][-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]+(\.[a-z]{2,6}))/","<a class=\"carattereText\" href=\"mailto:$0\">$0</a>",$messaggio);

    //Rende l'URL linkabile
    $messaggio preg_replace("/(ftp(s|es)?:\/\/|sftp:\/\/|http(s)?:\/\/|www\.)[-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]+(\.[a-z]{2,6})((\/)[-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]*)*/","<a class=\"carattereText\" href=\"$0\" target=\"_blank\">$0</a>",$messaggio); 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.