2013-10-08 7 views
5

Çift yıldız işaretleri arasında metin kalınlaşacak ve bir yıldız işareti ((yığın akışındaki editör gibi) arasında italik bir PHP işlevi yapmak istedim. * ve kelime arasında bir boşluk varsaYıldız işareti kalın harflerle yazılıyor

aynı kurallar geçerlidir, bu hale olmamalıdır.

Beni kim yardım edebilir? Denedim ama garip yıldız işaretleri "< b>" ve hatta olanları "</b>" nasıl bilmiyorum ben sadece kadar geldik.

(I boşluksuz bunları yazamaz, stackoverflow arasında metin verecek şekilde ..... kalın) bu çok tanıdık

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

Düzenli ifadeler wo olacak Bu basit örnek için rk. Ama lütfen bir ayrıştırıcı seçmeyi düşünün. HTML ile düzenli ifadeler kullanarak [bazı kişilerin içmesine izin verebilir] (http://stackoverflow.com/a/1732454/13895). – John

+0

@John: OP HTML ayrıştırma değil, * HTML içine * düz metin dönüştürme gibi görünüyor, bu nedenle düzenli ifadeler sadece iyi olmalıdır. – FtDRbwLXw6

cevap

9

Basit regex yapacak hile :

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

değilim ama olacak Düzenli İfadeye ihtiyacınız var. preg_replace()

içine bak Geçenlerde jQuery UI Otomatik Tamamlama tamamlayacak bir sunucu tarafı metin vurgulama sistemini uygulamıştır.

senin fikrin Benim adaptasyon böyle bir şey olurdu: Bu üretecektir

$txt = 'not bold [BeginBold]Yes Bold[EndBold] not bold again'; 

$newtxt = str_replace("[BeginBold]", "<b>", $txt); 
$newtxt = str_replace("[EndBold]", "</b>", $txt); 
echo $newtxt; 

:

kalın değil Evet Kalın değil cesur tekrar