Witam,
ostatnio intensywnie korzystałem z fotosik.pl i stwierdziłem, że kody do skopiowania po uploadzie zdjęć nie są odpowiednie. Każdy z nich musiałem poprawiać ręcznie.
Kod, który mnie interesuje to miniaturka dla www, który obecnie wygląda tak:
  1. <a href="http://www.fotosik.pl/pokaz_obrazek/5c4c3422b87e1dc6.html" target="_blank">
  2. <img src="http://images21.fotosik.pl/140/5c4c3422b87e1dc6m.jpg" width="113" height="151"
  3. border="0" alt="darmowy hosting obrazków"/>
  4. </a>

Chcę go uprościć:
  1. zmienić wartość href
  2. usunąć width
  3. usunąć height
  4. usunąć border
  5. ustawić alt na puste
href chcę zmienić gdyż obecnie prowadzi do strony fotosika, na której nie widzimy jeszcze zdjęcia w pełnych rozmiarach tylko w średniej wielkości. Musimy na nie kliknąć, żeby zobaczyć je w naturalnym rozmiarze.
width, height i border ustawiamy CSSem więc nie są tu potrzebne - usuwamy. alt domyślny nie ma nic wspólnego z naszym zdjęciem więc go usuwamy - ustawiamy na pusty.

Z obserwacji wynika, że adres wyświetlanej miniaturki pozwala odgadnąć adres zdjęcia w pełnych wymiarach. Wystarczy usunąć ostatnie m zaraz przed kropką i rozszerzeniem, i już mamy adres oryginalnego zdjęcia. Teraz kierujemy się do punktu 1. na powyższej liście i wstawiamy ten adres w wartość href. Proste smile.gif

Jako że nie znam się na wyrażeniach regularnych a próby utworzenia takowego spotkały się tylko z moją irytacją, zrealizowałem pomysł w inny sposób:
  1. <?php
  2. $input = '<a href="http://www.fotosik.pl/pokaz_obrazek/5c4c3422b87e1dc6.html" target="_blank">
  3. <img src="http://images21.fotosik.pl/140/5c4c3422b87e1dc6m.jpg" width="113" height="151" 
  4. border="0" alt="darmowy hosting obrazków"/>
  5. </a>';
  6. print $input.'<br /><br />';
  7.  
  8. $src1 = strstr($input, 'http://images');
  9. print $src1.'<br /><br />';
  10.  
  11. $src2 = strstr($input, '" width');
  12. print $src2.'<br /><br />';
  13.  
  14. $src3 = substr($src1, 0, (strlen($src1)-strlen($src2)));
  15. print $src3.'<br /><br />';
  16.  
  17. $src4 = substr($src3, 0, (strlen($src3)-5));
  18. $src5 = substr($src3, (strlen($src3)-5));
  19. $src5 = substr($src5, 1, strlen($src5));
  20. print $src4.$src5.'<br /><br />';
  21.  
  22. print '<a href="'.$src4.$src5.'" target="_blank"><img src="'.$src4.'m'.$src5.'" alt="" /></a>';
  23. ?>

Jest to oczywiście droga niezwykle okrężna ale działa winksmiley.jpg

Wyrażenie regularne byłoby chyba prostsze, działałoby szybciej. Wystarczyłoby wyciągnąć wszystkie znaki między cudzysłowami przy src= a potem usunąć 5 znak od końca w uzyskanym ciągu. Jednocześnie zapisać oryginalny ciąg znaków pod jakąś zmienną, aby potem wykorzystać go przy tworzeniu własnego kodu. Ewentualnie dodać literę m tuż przed kropką.

Pytanie: jak będzie brzmiało wyrażenie regularne wyciągające źródło miniaturki?

-- edit --
widzę brak zainteresowania. Szkoda. Przez tyle czasu sam napisałem wyrażenie regularne (trochę się nauczyłem smile.gif ) i projekt jest już prawie skończony. Zamienia kody tak, jak w założeniu. Dziękuję za nie-pomoc, pozdrawiam!