Visualizzazione risultati 1 fino 5 di 5

Discussione: Preg_replace solo se richiesto

  1. #1
    Guest

    Predefinito Preg_replace solo se richiesto

    Salve a tutti, ho creato un semplice parser come markdown per uno script personale.
    Codice PHP:
    $from = array("/\*(.+)\*/U","/\_(.+)\_/U","/\°(.+)\°/U","/\((.+)\:(.+)\)/U");
    $to = array("<b>$1</b>","<i>$1</i>","<u>$1</u>","<a href=\"$2\">$1</a>");

    $text = mysql_escape_string(strip_tags(preg_replace($from,$to,$text),"<b><i><u><a>"));
    Il problema è molto semplice: se io scrivo ** lui automaticamente traduce <b></b>.
    Quindi, anche quando il testo è vuoto. Vorrei che lo facesse solo in presenza di un testo "completo" e che in presenza di un punto cioè *.* oppure di un trattino cioè *-* sorvolasse senza trasformare in <b>-</b> oppure <b>.</b>. Questo anche per il resto cioè i,a e u.
    Grazie mille. Saluti, Davide!

  2. #2
    Guest

    Predefinito

    prova cn qualcosa di simile
    Codice:
    (\*[^*.-]+\*)+
    Ultima modifica di lottoforlife : 19-08-2011 alle ore 15.56.08

  3. #3
    Guest

    Predefinito

    Sì grazie, funziona. E per questo tipo: (ciao: ciaociao)? Lui lo traduce come un link!
    Dovrebbe tradurre solo links di questo tipo: (ciao:http://ciao.com) :D
    Grazie mille!!

  4. #4
    Guest

    Predefinito

    prova questa :D

    Codice:
    [^:\/]*://[^.]*\.(.*)
    neanche le testo, quindi fai un po tu

  5. #5
    Guest

    Predefinito

    Non funziona, il risultato che ottengo è questo:
    Array ( [0] => ciao (ciao:ciao) (ciao: ciao ciao) (ciao:http://ciao.com) [1] => ciao (ciao:ciao) (ciao: ciao ciao) (ciao [2] => com) ) Array
    Invece dovrei ottenere qualcosa di simile:
    Array ( [0] => ciao (ciao:ciao) (ciao: ciao ciao) (ciao:http://ciao.com) [1] => http://ciao.com [2] => ciao )
    Codice PHP:
    preg_match("/(.+)\:[^:\/]*:\/\/[^.]*\.(.*)/",$_POST["testo"],$text);

Regole di scrittura

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