Visualizzazione risultati 1 fino 9 di 9

Discussione: Semplice markdown bold, italics e underline

  1. #1
    L'avatar di zerobruno
    zerobruno non è connesso Utente
    Data registrazione
    03-10-2013
    Messaggi
    192

    Predefinito Semplice markdown bold, italics e underline

    Vorrei che
    "Today was a *great* day."
    diventasse
    "Today was a <b>great</b> day."

    Vorrei che
    "Today was a _great_ day."
    diventasse
    "Today was a <i>great</i> day."

    Vorrei che
    "Today was a -great- day."
    Diventasse
    "Today was a <s>great</s> day."

    Tutto ciò, partendo da variabili in PHP.
    È possibile farlo?

    Grazie per l'attenzione,
    Sneffel.
    Perché con l'accento grave è inguardabile.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    Dovresti usare preg_replace().

    Vedi ad esempio qui.

    Ciao!

  3. #3
    L'avatar di zerobruno
    zerobruno non è connesso Utente
    Data registrazione
    03-10-2013
    Messaggi
    192

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    [...]
    Grazie mille per la rapida risposta.
    Allora, io vorrei fare del markdown e non del BBCode, ma poco male, lo cambierò un po'.

    Insomma, ho provato il suo codice, e funziona così:
    - Inserisco <b>Ciao!</b>;
    - Mi rimanda [b]Ciao[b].

    Il che non è mica male, ma ciò che io volevo ottenere è pressoché
    - Inserisco *Ciao!*;
    - Mi rimanda '<b>Ciao</b>'.

    Quindi, come evidente, vorrei ottenere il contrario, da simboli convenzionali ad HTML e non il contrario.

    Le operazioni regolari non saprei come implementarle, cercavo qualche discussione vecchia.
    Perché con l'accento grave è inguardabile.

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    Quel sorgente puoi modificarlo!
    Dove c'é scritto "<b>" puoi mettere "*" per dirne una...

    Fai delle prove.

    Per le espressioni regolari, si imparano .

    Ciao!
    Ultima modifica di alemoppo : 14-06-2015 alle ore 12.03.53

  5. #5
    L'avatar di zerobruno
    zerobruno non è connesso Utente
    Data registrazione
    03-10-2013
    Messaggi
    192

    Predefinito

    pappapronta

    <3
    Ultima modifica di zerobruno : 14-06-2015 alle ore 13.01.34
    Perché con l'accento grave è inguardabile.

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    [pappapronta]
    Codice PHP:
    <?
    function bbcode ($str) {
    $htmltags = array(
    '<b>\\1</b>',
    '<i>\\1</i>',
    '<s>\\1</s>'
    );

    $bbtags = array(
    '/\*(.*)\*/is',
    '/_(.*)_/is',
    '/-(.*)-/is'
    );

    return
    preg_replace ($bbtags, $htmltags, $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>
    Ciao!

  7. #7
    L'avatar di zerobruno
    zerobruno non è connesso Utente
    Data registrazione
    03-10-2013
    Messaggi
    192

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    [pappapronta][...]
    [/pappapronta]

    Mi sento un po' in colpa

    Grandissimo! Ero riuscito a fare una cosa identica ma non sapevo il fatto degli degli array...


    Noto due cose:
    Codice PHP:
    /* 1 */ '/\*(.*)\*/is'


    /* 2 */ '<s>\\1</s>'
    1) Che significa quell'is? Stato Islamico?
    2) \\1 è sostituibile con $1, vero? Perché allora premere due volte sulla tastiera \\ se puoi tranquillamente fare Shift + 4, credendo ignaro di aver premuto i tasti una sola volta quando invece Shift conta come una pressione dei tasti...






    Edit:
    Ho corretto il codice anche semplificandolo:
    Codice PHP:
    <?
    function bbcode($a){$b=array('<b>\\1</b>','<i>\\1</i>','<s>\\1</s>');$c=array('/\*(.*)\*/is','/_(.*)_/is','/-(.*)-/is');


    return
    nl2br(strip_tags(trim(preg_replace($c,$b,$a)),"<b><s><i><br>"));



    }

    $str=$_GET['text'];

    $testo=trim(bbcode($str));
    echo
    $testo;

    ?>

    <form action="<?=$_SERVER['PHP_SELF']?>" method=get>
    <textarea style="min-width:600px;min-height:350px" name=text><?=$_GET['text']?></textarea><br>
    <input type=submit value="Markdown into HTML right now, ZAC ZAC!">
    </form>
    Ultima modifica di zerobruno : 14-06-2015 alle ore 13.21.11 Motivo: grammatica
    Perché con l'accento grave è inguardabile.

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    Citazione Originalmente inviato da zerobruno Visualizza messaggio
    ma non sapevo il fatto degli degli array
    Era sufficiente cliccare sul link dell'esempio che ti ho scritto nel primo messaggio.


    Citazione Originalmente inviato da zerobruno Visualizza messaggio

    1) Che significa quell'is? Stato Islamico?
    No, si tratta dell'indice di sazietà. È necessario per ogni sostituzione passare anche quel parametro per far capire a PHP di quante risorse necessita l'engine per eseguire quell'operazione.

    (vedi qui, sotto "modificatori").



    Citazione Originalmente inviato da zerobruno Visualizza messaggio
    2) \\1 è sostituibile con $1, vero? Perché allora premere due volte sulla tastiera \\ se puoi tranquillamente fare Shift + 4, credendo ignaro di aver premuto i tasti una sola volta quando invece Shift conta come una pressione dei tasti...
    È vero che sono sempre 3 pressioni di tasti, ma il "\\1" sono due tasti differenti, per di più attaccati. <shift>+4 e 1 sono tre tasti differenti posti tra l'altro non troppo vicini.

    (Puoi usare anche $1, da PHP 4.0.4).

    Ciao!
    Ultima modifica di alemoppo : 14-06-2015 alle ore 13.27.57

  9. #9
    L'avatar di zerobruno
    zerobruno non è connesso Utente
    Data registrazione
    03-10-2013
    Messaggi
    192

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    [...] "\\1" sono due tasti differenti, per di più attaccati. <shift>+4 e 1 sono tre tasti differenti posti tra l'altro non troppo vicini.

    [...]
    Ok, quadra, però se sbagli devi premere sue backspace al posto di uno, e poi tutte quelle \\\\\\\\ danno la nausea


    Ecco il codice semplificato al massimo:

    Codice PHP:
    function markdown($a){$b=array('<b>\\1</b>','<i>\\1</i>','<s>\\1</s>');$c=array('/\*(.*)\*/is','/_(.*)_/is','/-(.*)-/is');return nl2br(strip_tags(trim(preg_replace($c,$b,$a)),"<b><s><i><br>"));}

    $str='*bold*, _italics_ e -strisciato-';

    $testo=markdown($str);
    echo
    $testo;


    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    Ultima modifica di zerobruno : 14-06-2015 alle ore 13.46.53 Motivo: e basta chiamarlo bbcode, è il markdown!
    Perché con l'accento grave è inguardabile.

Regole di scrittura

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