ktosz
29.01.2016, 10:16:31
Hej mam problem. Wiem, że jest funkcja str_replace typu:
$zmienna = '+znaki+ +tekst+';
str_replace("+","plus",$zmienna);
ale ja chcę zrobić coś takiego, że mam tekst typu:
idę sobie lasem do przodu @którym chodziłem@ ostatnio
i ma to wyglądać tak, że co jest pomiędzy @...@ jest czcionką pogrubioną i wyglądać będzie to tak:
idę sobie lasem do przodu <b>którym chodziłem</b> ostatnio
funkcją str_replace mogę zamienić @ na <b> ale nie wiem jak rozpoznać, że ta druga @ ma być już </b> (zamknięciem ciągu by dalej nie było formatowania)
kapslokk
29.01.2016, 10:18:32
preg_replace('/@(.*?)@/', '<b>$1</b>', 'asdasd@asdad@asdad');
ktosz
29.01.2016, 10:35:11
Cytat(kapslokk @ 29.01.2016, 10:18:32 )

preg_replace('/@(.*?)@/', '<b>$1</b>', 'asdasd@asdad@asdad');
Super działa. A przykładowo czy mogę zamienić to @ na inne znaki, np. * lub %? Bo podmieniając tutaj tak:
preg_replace('/*(.*?)*/', '<b>$1</b>', 'asdasd*asdad*asdad');
Niestety nie działa
kapslokk
29.01.2016, 10:37:06
Poczytaj o wyrażeniach regularnych. Jeśli chcesz wstawić znaki specjalne typu * musisz je escapować czyli wstawić backslash przed ten znak: \*
ktosz
29.01.2016, 10:39:19
Cytat(kapslokk @ 29.01.2016, 10:37:06 )

Poczytaj o wyrażeniach regularnych. Jeśli chcesz wstawić znaki specjalne typu * musisz je escapować czyli wstawić backslash przed ten znak: \*
Jesteś gość! Dziękuję za pomoc, temat wyczerpany wszystko działa!