Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: [php] regex

  1. #1
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454

    [php] regex

    Ragazzi ho bisogno del vostro aiuto,

    ho questo codice che converte i tag bbcode in html, ci sono riuscito a forza di provare ma ora non riesco a fare che torni in bbcode, potreste aiutarmi??

    codice:
    $txt=eregi_replace("\[img\]([^\[]+)\[/img\]","<img src=\"\\1\" border=\"0\">",$txt);
    $txt=eregi_replace("\[email\]([^\[]+)\[/email\]","<a href=\"mailto:\\1\">\\1</a>",$txt);
    $txt=eregi_replace("\[email=([^\[]+)\]([^\[]+)\[/email\]","<a href=\"mailto:\\1\">\\2</a>",$txt);
    $txt=eregi_replace("\[url=([^\[]+)\]([^\[]+)\[/url\]","<a href=\"\\1\" target=\"_blank\">\\2</a>",$txt);
    $txt=eregi_replace("\[url\]([^\[]+)\[/url\]","<a href=\"\\1\" target=\"_blank\">\\1</a>",$txt);
    
    $txt=eregi_replace("\[size=([147]+)\]([^\[]+)\[/size\]","<font size=\"\\1\">\\2</font>",$txt);
    $txt=eregi_replace("\[color=([^\[]+)\]([^\[]+)\[/color\]","<font color=\"\\1\">\\2</font>",$txt);
    Grazie in anticipo

  2. #2
    occhio che a prescindere dal tornare in dietro sono tutte sballate ....


    [ size=1471471471777777777]se volessi mettere [una quadra] ?[/size]

    vale un po' per tutte ... inoltr consiglio preg_replace e mai ereg o eregi
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    ah... capisco, come detto, ci sono andato un po' a fortuna hihihih

    Allora prima del tornare in dietro mi date una mano ad aggiustare queste?

    In tanto:

    codice:
    $txt=preg_replace("\[img\]([^\[]+)\[/img\]","<img src=\"\\1\" border=\"0\">",$txt);
    $txt=preg_replace("\[email\]([^\[]+)\[/email\]","<a href=\"mailto:\\1\">\\1</a>",$txt);
    $txt=preg_replace("\[email=([^\[]+)\]([^\[]+)\[/email\]","<a href=\"mailto:\\1\">\\2</a>",$txt);
    $txt=preg_replace("\[url=([^\[]+)\]([^\[]+)\[/url\]","<a href=\"\\1\" target=\"_blank\">\\2</a>",$txt);
    $txt=preg_replace("\[url\]([^\[]+)\[/url\]","<a href=\"\\1\" target=\"_blank\">\\1</a>",$txt);
    
    $txt=preg_replace("\[size=([147]+)\]([^\[]+)\[/size\]","<font size=\"\\1\">\\2</font>",$txt);
    $txt=preg_replace("\[color=([^\[]+)\]([^\[]+)\[/color\]","<font color=\"\\1\">\\2</font>",$txt);

  4. #4

  5. #5
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Originariamente inviato da Petro_suse91
    Hai già provato questo?
    http://pear.php.net/package/HTML_BBCodeParser

    almeno x l'"ispirazione"
    Grazie, ma non è che ci abbia capito molto hhiihih VVoVe:

  6. #6
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454

    Re: [php] regex

    Questo va meglio?

    Originale:
    codice:
    $txt=preg_replace("\[email\]([^\[]+)\[/email\]","<a href=\"mailto:\\1\">\\1</a>",$txt);
    $txt=preg_replace("\[email=([^\[]+)\]([^\[]+)\[/email\]","<a href=\"mailto:\\1\">\\2</a>",$txt);
    Nuovo:
    codice:
    $txt = preg_replace("#\[email\]([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#i", "<a href=\"mailto:\\1@\\2\">\\1@\\2</a>", $txt);
    $txt = preg_replace("#\[email=([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)?(.*?)\](.*?)\[/email\]#i", "<a href=\"mailto:\\1@\\2\">\\5</a>", $txt);

  7. #7
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Credo di averlo migliorato... che ne dite?
    codice:
    $txt=preg_replace("#\[img\](.*?)\[/img\]#si", "<img src=\"\\1\" border=\"0\" alt=\"Obrazek\" />",$txt);
    $txt=preg_replace("#\[email\]([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#i","<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",$txt);
    $txt=preg_replace("#\[email=([a-z0-9\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)?[\w]+)?(.*?)\](.*?)\[/email\]#i","<a href=\"mailto:\\1@\\2\">\\5</a>",$txt);
    $txt=preg_replace("#\[url\](.*?)?(.*?)\[/url\]#si","<A HREF=\"\\1\\2\" TARGET=\"_blank\">\\1\\2</A>",$txt);
    $txt=preg_replace("#\[url=(.*?)?(.*?)\](.*?)\[/url\]#si","<A HREF=\"\\2\" TARGET=\"_blank\">\\3</A>",$txt);
    $txt=preg_replace("#\[size=(http://)?(.*?)\](.*?)\[/size\]#si","<span style=\"font-size:\\2\">\\3</span>",$txt);
    $txt=preg_replace("#\[color=(http://)?(.*?)\](.*?)\[/color\]#si","<span style=\"color:\\2\">\\3</span>",$txt);
    $txt=preg_replace("#\[b\](.*?)\[/b\]#si","\\1",$txt);
    $txt=preg_replace("#\[i\](.*?)\[/i\]#si","\\1",$txt);
    $txt=preg_replace("#\[u\](.*?)\[/u\]#si","<u>\\1</u>",$txt);

  8. #8
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Insisto UP

  9. #9
    Originariamente inviato da Nosfe
    Credo di averlo migliorato... che ne dite?
    che una cosa come
    questa non sarebbe ammessa,
    ovvero escludi il ritorno a capo per ogni
    tipo di controllo ... ve beneper le
    img ma non va
    molto bene
    per tutto il resto



    questa l' avevi
    gia' vista ?


    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente di HTML.it L'avatar di Nosfe
    Registrato dal
    Jan 2004
    Messaggi
    454
    Originariamente inviato da andr3a
    che una cosa come
    questa non sarebbe ammessa,
    ovvero escludi il ritorno a capo per ogni
    tipo di controllo ... ve beneper le
    img ma non va
    molto bene
    per tutto il resto



    questa l' avevi
    gia' vista ?


    Innanzitutto grazie per la risposta

    Allora devo dire che non avevo pensato alla cosa di andare a capo, ma ora che l'hai detto l'ho provato e funziona. Lo ammette, quindi va bene no? Quale parte ti ha fatto pensare che non lo avrebbe ammesso? (sono curioso dato che non sono tanto pratico con le regex )

    PS: Ora guardo la classe cmq.

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.