![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 12 Dołączył: 12.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dużo czytałem o wyrażeniach regularnych, ale jakoś nadal nie mogę się z nimi uporać... Może ktoś pomóc? Na dobrą sprawę nie mam pojęcia co robię źle. Może poprostu źle rozumiem używane przeze mnie funkcje. Problem jest taki:
Konstruuje skrypt, który modyfikuje na własne potrzeby dodawane do bazy linki. Jeśli chodzi o instrukcje warunkowe to działają one jak należy. Problem tkwi w podmianie w funkcji ergi_replace. Gdy definicja target znajduje się na końcu skrypt podmienia dobrze, gdy owa definicja znajduje się gdzieś po środku, czy na początku (gdy nie kończy stringa) wszystko się sypie. Sypie znaczy się, że skrypt kasuje wszystko co znajduje się po podmienionym fragmencie:
PS. Jeśli chodzi o składnię i cały wklejony przeze mnie kod to jest on w 100% dobry, brak literówek, czy jakichkolwiek innych braków (choćby znaków), jedyny jego mankament to najprawdopodobniej zła kombinacja wyrażenia regularnego. Niestety nie umiem się uporać z tym sam. ![]() Ten post edytował slightyboy 12.07.2007, 19:19:02 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 157 Pomógł: 0 Dołączył: 12.02.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Nie mam jak tego sprawdzić, ale nie wiem czy ten + nie powinien stąd zniknąć...
-------------------- ------
Per Aspera Ad Astra |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 12 Dołączył: 12.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie działa... Nie wiem już sam co robić. Wydaje mi się, że jest ok, a tu jednak ucina zaraz po tym znaczniku 'target'. :/
Próbowałem także inaczej z zastowosowaniem tablic. Sposób ten również nie działa, niewiedzieć czemu zupełnie ( ![]() Wiem, że brak tu funkcji 'sklejającej' link, ale to kwestia dosłownie paru minut. Nie wiem już sam co zrobić, bo i tamten sposób nie działa i ten też nie (choć oba powinny działa [nie jestem pewien co do wyrażeń regularnych, ale co do tego sposobu tak!])... Ma ktoś jakąś propozycję... Ja już się chyba poddaje innego sposobu nie znam (oprócz ręcznej zamiany)... ![]() PS. Funkcja array_search() tak jakby wybierała sobie co chce znaleźć a co nie... Np. frazy 'asd', 'erwer', '<a title' znajduje... Nie wiem w czym robię błąd, bo ja go szczerze nie widzę... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Co do array_search to pod $tab[4] nie masz 'target', tylko ' target' (zwróć uwagę na spację)
A co do wyrażeń regularnych, to .+ dopasuje ci tak dużo znaków jak to tylko możliwe, ale żeby wyrażenie nadal pasowało, czyli target=".+" dopasuje ci: Cytat <a href="abc.html" target="_self" class="link">abc</a> Możesz zamienić to na .+? (które dopasuje ci jak najmniej znaków, ale żeby wyrażenie nadal pasowało), lub [^"]+ (które nie dopasuje żadnego cudzysłowu). target=".+?": Cytat <a href="abc.html" target="_self" class="link">abc</a>
-------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.06.2025 - 14:12 |