Cytat(zegarek84 @ 1.02.2009, 23:10:14 )

w pojedyńczym cudzysłowiu nie musisz ucieczki robić przed podwójnym cudzysłowiem a jednocześnie przed samym = powinien być znak ucieczki (jak widzisz u mnie działa) więc zamiast - jednocześnie znak zapytania sprawai że wyrażenie regularne nie będzie tak bardzo zachłanne

:
Kod
$dane=preg_replace('#emoid=\"[^\"]+"#', "", $dane);
powinno wystarczyć:
Kod
$dane=preg_replace('/emoid\="[^"]+?"/', '', $dane);
podobnie przy:
Kod
$dane=preg_replace("#<img([^>]+[^/])>#", "<img \\1/>", $dane );
wystarczy

:
Kod
$dane=preg_replace('/<img([^>]+?)>/', '<img\1 />', $dane );
nie chce mi się sprawdzać ;p - ale mimo tych modyfikacji też powinno działać a tam gdzie nie trzeba nie powinno się zbyt mocno definiować wyrażeń regularnych żeby samemu się nie pogubić

- jeszcze czasem przydaje się grupowanie ciągu z wyłączeniem zmiennej czyli coś w stylu (?:[^f]) - po prostu ta zmienna nie będzie zapamiętana - czasem jest potrzebna oszczędność gdyż do zmiennych można zapakować bodajrze tylko 9 grup
pozatym zamiast urzywać 2 razy preg_replace mógłbyś urzyć tą funkcję tylko raz gdyż jako parametr ona przyjmuje też tablicę
- więc można ją wykożystać do bbcode ^^przy drugim nie do końca działa, jeśli jest / to dodaje następny
a przy pierwszym, jaka jest różnica?, działa tak samo, domyślam się że działa szybciej, ale czemu jest / zamiast #
PS: Znasz może jakiś porządny opis składni wyrażeń regularnych w preg ?
Cytat(ayeo @ 2.02.2009, 01:46:19 )

Witam!
Mam kilka uwag. Gdzie jest tytuł wiadomości? Czemu nie używasz BBcode jak wklejasz kod? Czemu używacie ereg(); zamiast preg(); ?
Pozdrawiam!
Głupie pytanie, po co tytuł tematu jak sam tytuł wszystko tłumaczy ?(tak wiem, regulamin)
Odnośnie bbkodu, część na szybko wrzucałem, przepraszam

Na necie jest dobrze i w prosty sposób opisana składnia ereg, niestety z preg nie jest tak dobrze.