Visualizzazione risultati 1 fino 7 di 7

Discussione: Ridefinire una stringa

  1. #1
    poske non è connesso Altervistiano Junior
    Data registrazione
    06-02-2005
    Messaggi
    620

    Question Ridefinire una stringa

    Ciao a tutti,
    sto cercando di creare un form per editare messaggi che è molto simile a quelli dei forum di discussione tipo questo di AV.

    Ho un problema (per adesso).
    Per inserire ad esempio un link, al momento della scrittura del messaggio, nella textarea visualizzo [ url=http://sito.com ]testo visualizzato[ /url ] e fino a quì tutto ok.
    Come faccio per definire al momento del post la stringa <a href="http://sito.com">Testo visualizzato</a> ?

    Penso che non sia difficile, ma con le poche funzioni che conosco mi complicherei parecchio la vita senza raggiungere buoni risultati...
    Vi ringrazio...
    Ciao :D

  2. #2
    Guest

    Predefinito

    Devi usare preg_replace e le espressioni regolari

    se vuoi impararle guarda qui

    altrimenti ti faccio vedere quello che usa invision

    Codice PHP:
    //url normali [url]testo[/url]
    $post = preg_replace( "#\[url\](\S+?)\[/url\]#ie" , "regex_build_url(array('html' => '\\1', 'show' => '\\1'))", $post );

    // [url="blabla"]testo[/url]
    $post = preg_replace( "#\[url\s*=\s*\&quot\;\s*(\S+?)\s*\&quot\;\s*\](.*?)\[\/url\]#ie" , "regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $post );

    // [url=blabla]testo[/url]
    $post = preg_replace( "#\[url\s*=\s*(\S+?)\s*\](.*?)\[\/url\]#ie" , "regex_build_url(array('html' => '\\1', 'show' => '\\2'))", $post );
    \\1 contiene il link, \\2 contiene il testo

    chiaramente a regex_build_url sostituisci "<a href="\\1">\\2</a>

  3. #3
    Guest

    Predefinito

    Se devi copiare/icollare il codice almeno fallo bene, visto che quei preg_replace richiamano delle funzioni che non hai postato ....

    questo è quello che fa per te:
    Codice PHP:
    preg_replace( "~\[url=(http|ftp|https)://(.*?)\](.*?)\[/url\]~i" , '<a href="\\1://\\2">\\3</a>', $post );

  4. #4
    poske non è connesso Altervistiano Junior
    Data registrazione
    06-02-2005
    Messaggi
    620

    Predefinito

    Grazie infinite ad entrambi!
    Inizio a dare un'occhiata al link di Xmax sulle espressioni regolari e colgo lo script pronto di Inverno.

    corro a provare...

    Ciaoooo! :D

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da Inverno
    Se devi copiare/icollare il codice almeno fallo bene, visto che quei preg_replace richiamano delle funzioni che non hai postato ....

    questo è quello che fa per te:
    Codice PHP:
    preg_replace( "~\[url=(http|ftp|https)://(.*?)\](.*?)\[/url\]~i" , '<a href="\\1://\\2">\\3</a>', $post );
    leggi bene il mio post

  6. #6
    Guest

    Predefinito

    senza far polemiche
    L'ho letto il tuo post, ma secondo te uno che non ha mai visto una regex gli posti un codice:
    1) incompleto
    2) di difficile comprensione (per un novizio)

    A questo punto faceva prima ad aprire Invision ed a copiare il codice di Matt

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da xmax
    chiaramente a regex_build_url sostituisci "<a href="\\1">\\2</a>
    nessuna polemica

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •