Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    [PHP] replace tag personalizzati in textarea??

    Dovrei realizzare un sistema analogo all'inserimento di url di questo forum
    codice:
    //tag personalizzati
    Elemento 0 -->forum.html.it"
    potreste darmi qualche suggerimento ???

    cichity74

  2. #2
    Originariamente inviato da cichity74
    Dovrei realizzare un sistema analogo all'inserimento di url di questo forum
    codice:
    //tag personalizzati
    Elemento 0 -->forum.html.it"
    potreste darmi qualche suggerimento ???

    cichity74
    Sicuramente c'è di meglio, ma potresti provare così:
    Codice PHP:
    $testo str_replace('[URL="''<a href="'$testo);
    $testo str_replace(']''" target="_blank">'$testo);
    $testo str_replace('[/URL]''</a>'$testo);
    echo 
    $testo

  3. #3
    [QUOTE]Originariamente inviato da nyo89
    Sicuramente c'è di meglio, ma potresti provare così:
    Codice PHP:
    $testo str_replace('[URL="''<a href="'$testo);
    $testo str_replace(']''" target="_blank">'$testo);
    $testo str_replace('[/URL]''</a>'$testo);
    echo 
    $testo;
    [/
    PHP] [/QUOTE]

    Nella prima riga un " di troppo
    [PHP]
    Corretta:
    $testo = str_replace("[URL=", '<a href="', $testo);
    [/PHP]
    non funziona....
    [PHP]
    mi restituisce:
    // <a href="http://forum.html.it" target="_blank">forum.html.it[/URL" target="_blank">
    [/PHP]

    credo sia dovuto dalla quadra “[” (II riga del tuo script)


    Altri sviluppi 

    Cambiando l' 
    ordine dei fattori il prodotto cambia...
    unico problema è che se nel testo è presente una quadra “]” viene sostituita con 
    " target="_blank">

    [PHP]
    $testo = str_replace("[URL=", '<a href="', $testo);
    $testo = str_replace("[/URL]", "</a>", $testo);
    $testo = str_replace("]", '" target="
    _blank">', $testo);
    echo 
    $testo


    cichity74

  4. #4
    Si è vero, non ci avevo pensato, però potresti fare così forse:
    Codice PHP:
    $testo str_replace('[URL="''<a href="'$testo); 
    $testo str_replace('[COLOR=red]"[/COLOR]]''" target="_blank">'$testo); 
    $testo str_replace('[/URL]''</a>'$testo); 
    echo 
    $testo
    o anche qui non va?

  5. #5
    con la sequenza da te suggerite:
    Codice PHP:
    $testo str_replace('[URL="''<a href="'$testo);
    $testo str_replace('"]''" target="_blank">'$testo);
    $testo str_replace('[/URL]''</a>'$testo);
    echo 
    $testo;
    risultato:
    // [URL=http://forum.html.it]forum.html.it 
    cosi funziona ma se nel testo è presente una ] la sostituisce con " target="_blank"
    Codice PHP:
    $testo str_replace("[URL="'<a href="'$testo);
    // purtoppo mi sost il codice è come la tua 3 riga
    $testo str_replace('[/URL]''</a>'$testo);
    $testo str_replace("]"'" target="_blank">'$testo);
    echo 
    $testo;
    risultato:
    // [url="http://forum.html.it"]forum.html.it[/url] 
    cichity74

  6. #6
    Io ho provato così, e funziona:
    Codice PHP:
    <?php
    $testo 
    '[ URL="http://asdasd.com"]testo_url[ /URL]';//ho aggiunto spazi, perchè altrimenti il forum lo trasforma
    $testo str_replace('[URL="''<a href="'$testo); 
    $testo str_replace('"]''" target="_blank">'$testo); 
    $testo str_replace('[/URL]''</a>'$testo); 
    echo 
    $testo
    ?>
    inoltre non c'è il problema che se uno inserisce ] viene sosituito, perchè fai sostituire "] ...

  7. #7
    Variando la sintassi del tag personalizzato funziona perfettamente
    rimane una curiosità come funziona sul forum di html.it con la loro
    sintassi che prevede una quadra “]”....????
    spero che qualche admin / dev del forum ci sveli l'arcano
    grazie per i suggerimenti

    cichity74

  8. #8
    up :rollo:

  9. #9
    un espressione regolare ti serve...trovi un articolo su html.it e anche se vedi sul manuale on-line di php trovi molte funzioni già fatte che servono a te

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    Originariamente inviato da nyo89
    Sicuramente c'è di meglio, ma potresti provare così:
    Codice PHP:
    $testo str_replace('[URL="''<a href="'$testo);
    $testo str_replace(']''" target="_blank">'$testo);
    $testo str_replace('[/URL]''</a>'$testo);
    echo 
    $testo


    usa le pcre
    (http://php.net/pcre)
    Sostanzialmente puoi fare una espressione regolare del genere:

    codice:
    <?php
    $str = $_POST['testo'];
    $str = preg_replace('/^\[URL=([^\]]*?)\]([^\[]*?)\[\/URL\]$/i', "<a href=\"\\1\" target=\"_blank\">\\2</a>", $str);
    echo $str;
    ?>


    [edit] in ritardo

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.