Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyrażenie regularne i negacja
maciu
post 14.11.2008, 10:08:27
Post #1





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


Jest tekst połączony z tagami html. Z tego tekstu za pomocą wyrażeń regularnych chcę wyciągnąć wszystkie tagi img, a nastepnie tag zdjęcia podlinkować

jest
  1. fsdfsdsffff<img src="zdjecie.jpg" alt="" />dsdjfhsdjfshdskhsaklf

z tego ma wyjść
  1. <a href="zdjecie_big.jpg><img src="zdjecie.jpg" alt=""/></a>


robię to za pomocą takiego wyrażenia
  1. <?php
  2. preg_replace('/(<img.*src="(.+)(.jpg|.gif|.png)"{1}[^>]+>)/Ui', '<a href="$2_big$3">$1</a>', $text);
  3. ?>



teraz chciałbym to trochę zmodyfikować, aby nie pobierał zdjęć, które już są podlinkowane.

takim wyrażeniem pobieram zdjęcia które są podlinkowane
  1. <?php
  2. preg_replace('/<a.*href="(.+)"{1}[^>]+>(<img.*src="(.+)(.jpg|.gif|.png)"{1}[^>]+>)/Ui', '<a href="$3_big$4">$2</a>', $text);
  3. ?>


a chciałbym na odwrót, czyli żeby pobierał te zdjęcia, które nie są podlinkowane.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
maniekl2
post 14.11.2008, 10:51:45
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

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


nie wiem czy dobrze zrozumiałem, ale może coś takiego:
  1. <?php
  2. if(!preg_replace('/<a.*href="(.+)"{1}[^>]+>(<img.*src="(.+)(.jpg|.gif|.png)"{1}[^>]+>)/Ui', '<a href="$3_big$4">$2</a>', $text)) {
  3. // jeżeli nie jest podlinkowane to wykonuje.
  4. }
  5. ?>
Go to the top of the page
+Quote Post
maciu
post 14.11.2008, 11:20:43
Post #3





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


nie zrozumiałeś dobrze. Tak jak ty zrobiłeś to nie zwróci zdjęć niepodlinkowanych.
Go to the top of the page
+Quote Post
bim2
post 14.11.2008, 17:52:59
Post #4





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Pobierz te podlinkowane, tymczasowo usun je , pobierz reszte obrazków. smile.gif I tak masz niepodlinkowane.


--------------------
Go to the top of the page
+Quote Post
maciu
post 17.11.2008, 11:54:39
Post #5





Grupa: Zarejestrowani
Postów: 238
Pomógł: 1
Dołączył: 27.08.2003

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


udało mi się to rozwiązać. Podaje, może komuś się przyda
  1. <?php
  2. preg_replace('/([^<a.*href="(.+)"])>(<img.*src="(.+)(.jpg|.gif|.png)"{1}[^>]+>)/Ui', '<a href="$3_big$4">$2</a>', $text);
  3. ?>
Go to the top of the page
+Quote Post

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: 8.07.2025 - 07:36