Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zaawansowane wyrażenia w preg_replace
LamaMASTER
post 21.06.2006, 19:51:33
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


Witam,
Stworzyłem sobie skrypt, który sprawdza błędy popełniane przez użytkowników na moim forum, poprawia je i zaznacza co zrobili źle (potem mogą zedytować posta i poprawić, żeby sprawdzacz już się nie rzucał). Rozwijam sprawdzacza i rozwijam i w końcu stoję w miejscu. Chciałbym pozbyć ludzi nawyku używania dwóch pytajników (debilny pomysł twórców GG zrobił z internetu syf). Przykładowo:
- Jak się nazywasz??
ma poprawić na:
- Jak się nazywasz?
gdzie pytajnik będzie na czerwono czy coś (to sobie zrobię). To jest banał - prosta regułka w str_replace. Chciałbym jednak do tego użyć preg_replace tak, aby poprawiał tylko dwa wykrzykniki, a jeżeli jest ich więcej to zostawił w spokoju. Np.:
- Jak się nazywasz??
na:
- Jak się nazywasz?
a:
- Co ty gadasz?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?
zostawiał jak jest.
Niestety w powyższym przykładzie zamienia po dwa pytajniki po kolei. Wymyśliłem tak, żeby zamieniał tylko pytajniki ze spacją na końcu - było OK, ale nie zawsze user stawia spację po pytaniu, dlatego to też się nie sprawdza.

Druga rzecz - chciałbym dzięki preg_replace ustawić wstawianie przecinków przed "że" automatycznie. Przykład:
- Myślę że blablabla
zamienia na:
- Myślę, że blablabla
Też niby proste:
preg_replace("#(*.?)że(*.?)#si", '\\1, że \\2' ...
No dobra, ale wtedy jak user już wstawił przecinek:
- Myślę, że blablabla
to w wyniku mam:
- Myślę,, że blablabla

Z góry dzięki za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:16