Crea il text tra gli asterischi in grassetto

Volevo creare una function PHP che avrebbe reso il text in grassetto tra i doppi asterischi, e in corsivo tra un asterisco, (proprio come l'editor di StackOverflow) .

Si applicano le stesse regole, se c'è uno spazio tra * e la parola, non dovrebbe renderizzare.

Chi può aiutarmi? Ci ho provato, ma sono arrivato solo fino a qui, perché non so come rendere gli asterischi dispari "<b>" e quelli pari "</ b>".

(Non posso digitarli senza spazi, StackOverflow renderà il text tra così audace …..)

$thenewtext = str_replace("**", "<b>", "**Hello World** of PHP"); 

Una semplice regex farà il trucco:

 $thenewtext = preg_replace('#\*{2}(.*?)\*{2}#', '<b>$1</b>', '**Hello World** of PHP'); 

Non ho molta familiarità con questo, ma avrai bisogno di un'espressione regolare. Guarda in preg_replace ()

Recentemente ho implementato un sistema di evidenziazione del text sul lato server per integrare il completamento automatico dell'interface utente di jQuery.

Il mio adattamento della tua idea sarebbe qualcosa del genere:

 $txt = 'not bold [BeginBold]Yes Bold[EndBold] not bold again'; $newtxt = str_replace("[BeginBold]", "<b>", $txt); $newtxt = str_replace("[EndBold]", "</b>", $txt); echo $newtxt; 

questo produrrebbe:

non in grassetto Sì Grassetto non di nuovo audace