Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Parser per codice forum

    Ciao a tutti!

    Stò realizzando un motore per l'inserimento delle news in un sito e ho pensato di inserire il supporto per tag semplici come quelli di questo forum:
    codice:
    [*img]immagine[/*img] oppure [*url=]link[/*url] etc...
    Per tradurli in codice HTML ho implementato un semplice parser:
    codice:
    function parser($string) {
                    $string = str_replace("\n", "
    ", $string);
    		$string = str_replace("[URL=" , "[b]<a href=" , $string);
    		$string = str_replace("[/*URL]", "</a>[/b]", $string);
    		$string = str_replace("[B*]", "[b]", $string);
    		$string = str_replace("[/B*]", "[/b]", $string);
    		$string = str_replace("[U*]", "<u>", $string);
    		$string = str_replace("[/U*]", "</u>", $string);
    		$string = str_replace("[I*]", "[i]", $string);
    		$string = str_replace("[/I*]", "[/i]", $string);
    		$string = str_replace("[*url=" , "<a href=" , $string);
    		$string = str_replace("[*/url]", "</a>", $string);
    		$string = str_replace("[b*]", "[b]", $string);
    		$string = str_replace("[/b*]", "[/b]", $string);
    		$string = str_replace("[u*]", "<u>", $string);
    		$string = str_replace("[/u*]", "</u>", $string);
    		$string = str_replace("[i*]", "[i]", $string);
    		$string = str_replace("[/i*]", "[/i]", $string);
    		$string = str_replace("[IMG*]", "<img src=\"", $string);
    		$string = str_replace("[/IMG*]", "\" border=\"0\">", $string);
    		$string = str_replace("[img*]", "<img src=\"", $string);
    		$string = str_replace("[/img*]", "\" border=\"0\">", $string);
    		$string = str_replace("]", ">", $string);
      		return $string;
    }
    Ora mi chiedevo se esiste un modo più elegante o più affidabile per eseguire le stesse operazioni, perchè così come l'ho implementato io non mi soddisfa appieno.
    Mi sapreste eventualmente indicare una guida o fornire degli esempi?
    O anche solo indicarmi delle funzioni per implementarlo.
    Grazie a tutti!

    Alder

    N.B.
    Gli asterischi servono solo ad evitare che il parser di questo forum interpreti i tag

  2. #2
    questo metodo è rischioso perchè se qualcuno apre un tag e non lo chiude, quando poi vai a tradurlo in html, ti troverai un tag html aperto spaiato che potrebbe rovinarti tutta la pagina. meglio usare le espressioni regolari che traducano i tag solo se questi vengono aperti e chiusi.

  3. #3
    Effettivamente direi che è una cosa più sensata.
    Non ho mai usato le espressioni regolari, ma oggi ho deciso di studiarmele. Capire come funzionano l'ho capito... ma forse non abbastanza bene

    Allora, io voglio sostituire la stringa

    codice:
    $stringa = "Pluto";
    con

    codice:
    Pluto
    Per fare questo ho scritto il seguente codice (che ovviamente non va), ma non riesco a trovare l'errore.

    codice:
    $stringa = eregi_replace( "^\[url=([^<>[:space:]]+)\]([.])\[\/url\]$" , "<a href=\"\\1\">\\2</a>" , $stringa);
    echo $stringa;
    Mi potreste aiutare?

    Alder

  4. #4
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da Ald3r
    Effettivamente direi che è una cosa più sensata.
    Non ho mai usato le espressioni regolari, ma oggi ho deciso di studiarmele. Capire come funzionano l'ho capito... ma forse non abbastanza bene

    Allora, io voglio sostituire la stringa

    codice:
    $stringa = "Pluto";
    con

    codice:
    Pluto
    Per fare questo ho scritto il seguente codice (che ovviamente non va), ma non riesco a trovare l'errore.

    codice:
    $stringa = eregi_replace( "^\[url=([^<>[:space:]]+)\]([.])\[\/url\]$" , "<a href=\"\\1\">\\2</a>" , $stringa);
    echo $stringa;
    Mi potreste aiutare?

    Alder
    preg_replace("|\[(url)\=(.+)\](.+)\[\/(url)\]|iu", "\\2", $TESTO);



  5. #5
    Non va :master:
    Non è che può essere un problema di come ho installato php in locale?
    Qualcuno potrebbe controllare se gli funziano le funzioni ?!
    Tnx

    Alder

  6. #6
    Utente bannato
    Registrato dal
    Apr 2004
    Messaggi
    1,392
    Originariamente inviato da Ald3r
    Non va :master:
    Non è che può essere un problema di come ho installato php in locale?
    Qualcuno potrebbe controllare se gli funziano le funzioni ?!
    Tnx

    Alder
    Io ho questa e mi va dà dio: La sto usando per sviluppare un forum...

    function parseURL($stringa)
    {
    $criterio = "!\\\2";
    return preg_replace($criterio, $sostituzione, $stringa);
    }

  7. #7
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.