[php] preg_replace w akcji - szukam pomocy

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Adonistrator
Posty: 2
Rejestracja: wt lut 02, 2010 4:47 am

[php] preg_replace w akcji - szukam pomocy

Post autor: Adonistrator »

Witam !

Moja zabawa z PHP napotkała wielki mur... Nie radzę sobie z preg_replace...

Chcialbym zamienić następujący przykładowy kod:

Kod: Zaznacz cały

<img class="miniaturka_prettyPhoto" style="float: left;" src="uploads/images/xx/Obraz 001.jpg" alt="" width="780" height="585" />
na:

Kod: Zaznacz cały

<a rel="prettyPhoto" href="uploads/images/xx/Obraz 001.jpg"><img class="prettyPhoto" style="float: left;" src="lib/thumbs.php?img=%2Fxx%2FObraz+001.jpg" /></a>
tzn:
- z img usuwamy tylko width i height
- dodajemy znacznik <a z rel="prettyPhoto" (niezmiennie)
- zamieniamy src znacznika img
- usuwamy uploads/images z img (niekoniecznie)
- zmienną ?img parsujemy za pomocą urlencode(...)
Wiemy też, że ten kod może występować w dokumencie kilka razy.

Najgorsze jest to, że wiem co chcę osiągnąć ale nie mam pojęcia jak... siedzę nad tym od dwunastu godzin i mówiąc krótko: dupa :P

Będę zobowiązany za wszelką pomoc... może w końcu i ja będę umiał pomóc członkom tego forum :)
MirVanos
Nowy
Nowy
Posty: 26
Rejestracja: pt lip 23, 2004 11:15 am
Lokalizacja: Bytom
Kontakt:

Re: [php] preg_replace w akcji - szukam pomocy

Post autor: MirVanos »

Witam
Na pewno można to zrobić lepiej, ale tak na szybko może Ci się przydać :

Kod: Zaznacz cały

$html = preg_replace("/<img class=\"miniaturka_prettyPhoto\" style=\"float:\sleft;\" src=\"(.*?)\" alt=\"\" width=\"780\" height=\"585\".*>/e",
            "'<a rel=\"prettyPhoto\" href=\"'.'\\1'.'\">
                <img class=\"prettyPhoto\" style=\"float: left;\" src=\"lib/thumbs.php?img=\"'.urlencode('\\1').'\" />
            </a>'",
              $html);
Adonistrator
Posty: 2
Rejestracja: wt lut 02, 2010 4:47 am

Re: [php] preg_replace w akcji - szukam pomocy

Post autor: Adonistrator »

Dzięki...
Zapomniałem dodać, że kolejność tagów może być różna... I tak samo może niektórych wcale nie być - np. style... Wtedy to raczej nie zadziała :(

Ale znalazłem coś bardzo ciekawego:
PHP Simple HTML DOM Parser
http://simplehtmldom.sourceforge.net/

Jak uda mi się za pomocą tego narzędzia osiągnąć odpowiedni efekt to na pewno napiszę :)
ODPOWIEDZ