Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pattern dla atrybutu title, czyli i love preg_replace..
[PL]Neon
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 20.03.2005
Skąd: Nowy Dwór Maz.

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


Tooltip - właśnie to chciałem zrobić na mojej powstającej stronie.
Chciałem również, aby zwykły użytkownik mógł z poziomu profilu ustalić, czy dymki mają być wyświetlane, czy też nie.

Muszę podkreślić, że do obsługi interfejsu na stronie używam class troszkę wzorowanych na phpBB.

Tak więc zdecydowałem, iż podczas procesu tworzenia kodu skrypt - jeśli użytkownik ustalił, że dymki mają być wyświetlanie nie robi nic - jeśli mają być wyłączone, specjalny pattern dla preg_replace ma podmienić każdy title=' albo "*coś tam*" albo ' (chociaż używam title='*coś*', jeżeli nie da się ' albo " we wzorze - poproszę o ') na *nicość*.
I tu pojawił się problem.. Zbytnio nie znam się na tworzeniu wzorów dla preg_x, więc poprosiłem kolegę o pomoc.. On wymodził coś takiego :

  1. <?php
  2. $this->code[$handle] = preg_replace("@ title=('").*?1@i", '', $this->code[$handle]);
  3. ?>


Ale to nie działa..

Czy ktoś mógłby mi pomóc? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował [PL]Neon 4.11.2005, 20:45:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bendi
post
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(Morkai @ 2005-11-04 21:52:47)
Spróbuj potraktować kod tym
Kod
'/ title=("|\').*\\1/Uis'

A co będzie jak nie będzie ani pojedyńczego ani podwójnego cudzysłowa?
Lepiej tak:
Kod
'/ title=("|\')?.*?(?(1)\\1| )/is'

To zwiera wyrażenie warunkowe - jeżeli został znaleziony jakiś cudzysłów to zakończ regułkę nim, a jeżeli nie to zakończ spacją.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.09.2025 - 09:05