Visualizzazione dei risultati da 1 a 3 su 3

Discussione: BBCode in php

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    36

    BBCode in php

    Salve a tutti, premetto che ho usato il tasto cerca ma tra discussioni non risposte e quelle risposte non ho trovato ciò che cerco.
    Venendo al dunque sto cercando di fare un bbcode in php, ho buttato giù due righe al volo e sono arrivato ad un buon punto

    Codice PHP:
    <?
    function bbcode ($str) {
     
    $htmltags = array(
                                
    '/\<b\>(.*?)\<\/b\>/is',
                                
    '/\<i\>(.*?)\<\/i\>/is',
                                
    '/\<u\>(.*?)\<\/u\>/is',
                                
    '/\<ul\>(.*?)\<\/ul\>/is',
                                
    '/\<li\>(.*?)\<\/li\>/is',
                                
    '/\<img(.*?) src=\"(.*?)\" (.*?)\>/is',
                                
    '/\<div style="text-align:(.*?)"\>(.*?)\<\/div\>/is',
                                
    '/\<br(.*?)\>/is',
                                
    '/\<strong\>(.*?)\<\/strong\>/is',
                                
    '/\<a href=\"(.*?)\"(.*?)\>(.*?)\<\/a\>/is',
                                
    '/\<a href=\'(.*?)\'(.*?)\>(.*?)\<\/a\>/is',
                                );

        
    $bbtags = array(
                                
    '$1',
                                
    '$1',
                                
    '$1',
                                
    '$1',
                                
    '[*]$1[/*]',
                                
    '[img]$2[/img]',
                                
    '[$1]$2[/$1]',
                                
    '\n',
                                
    '$1',
                                
    '$3',
                                
    '$3',
                                );

        
    $str preg_replace ($htmltags$bbtags$str);
        
    $str nl2br($str);
        return 
    $str;
    }

    $str $_POST[text];
    echo 
    bbcode($str);

    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <textarea name=text></textarea>
    <input type="submit" name="submit" value="Vai">
    </form>
    il mio problema è questo: come posso eliminare tutti gli altri tag che non sono presenti nell'array di ricerca ($htmltags)? ad esempio se qualcuno scrive nella textarea l'attributo <table>, l'output mostrerà una tabella...!
    Grazie anticipatamente!
    Ultima modifica di furion89; 03-11-2013 a 13:34

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Così al volo, poi adegualo alle tue esigenze:
    Codice PHP:
    //fatti un array contenente tutti i tag che accetti
    $consentiti = array('<b>','<li>',...);

    //supponiamo che il tag da verificare sia in una variabile $da_verificare, quindi
    if ( in_array($da_verificare,$consentiti) )
    {
        
    //esegui il codice per la sostituzione o quello che devi fare
    }
    else
    {
        
    //elimini questo tag perché non è consentito


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    36
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Così al volo, poi adegualo alle tue esigenze
    e se dovessi controllare un intero testo, cioè quello proveniente dalla textarea, come dovrei impostare la variabile $da_verificare?
    Grazie

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.