Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Reskalizacja zdjęć w znacznikach IMG
Forum PHP.pl > Forum > Przedszkole
The Night Shadow
Gubię się w wyrażeniach regularnych. Mam ciąg tego typu:

<img width="233" height="175" alt="" src="adresik_pnrazka"/>

Potrzerbuję funkcji używającej wyrażeń regularnych, która zamieni mi to na to:

<img width="233" height="175" alt="" src="res.php?width=175&height=175&adres=adresik_pnrazka"/>

Potzrebne totalnie na wczoraj
potreb
A nie możesz uzyć str_replace?
The Night Shadow
Nie ponieważ nie wiem jakei są wartości width i height
webdice
  1. <?php
  2.  
  3. $str = '<img width="233" height="175" alt="" src="adresik_pnrazka"/>';
  4.  
  5. print preg_replace ('#<img width="([0-9]+)" height="([0-9]+)" alt="" src="([^"]+)"/>#', '<img width="$1" height="$2" alt="" src="res.php?width=$1&height=$2&adres=$3"/>', $str);
  6.  
  7. ?>


EDIT: Mały błąd zrobiłem zmień sobie

Kod
&width=$1


na

Kod
&width=$2
The Night Shadow
Bomba tyle że wystąpił jeszcze jeden problem. Rozchodzi się o edytor TinyMCE. Jeśli zdjęcie jest zmniejszane poprzez edytor zdjęć wygląda to tak jak napisałem. Natomiast w przypadku zmniejszenia ręcznego w widoku edytora dodawane są style. W związku z tym mamy dwie możliwości:

<img src="adres" alt="" width="500" height="100" />

Oraz taką:

<img style="width: 500px; height: 233px" src="adres" alt="" width="500" height="100" />

I teraz pytanie co teraz bo w pierwszym przypadku mają być pobrane wartości z width i height, a w drugim ze styli...... WEBDICEPL? Da się z tym coś zrobić?
webdice
Coś takiego?

  1. <?php
  2.  
  3. $str = '<img width="233" height="175" alt="" src="adresik_pnrazka"/>';
  4. $str2 = '<img style="width: 500px; height: 233px" src="adresik_pnrazka" alt="" width="500" height="100" />';
  5.  
  6. if (preg_match ('# style=#', $str))
  7. {
  8. print preg_replace ('#<img style="width: ([0-9]+)px; height: ([0-9]+)px" src="([^"]+)" alt="" width="500" height="100" />#', '<img width="$2" height="$2" alt="" src="res.php?width=$2&height=$2&adres=$3"/>', $str)
  9. }
  10. else
  11. {
  12. print preg_replace ('#<img width="([0-9]+)" height="([0-9]+)" alt="" src="([^"]+)"/>#', '<img width="$2" height="$2" alt="" src="res.php?width=$2&height=$2&adres=$3"/>', $str);
  13. }
  14.  
  15. ?>


EDIT: Znowu ten sam błąd zrobiłem, poprawiłem w kodzie.
The Night Shadow
Na to tez wpadłem tylko, że problem polega na tym, żę takich znaczników IMG możę być całe mnóstwo, a nie jeden. Chodzi o to by pobrać wszystkie i każy w zależności od rodzaju odpowiednio podmienic.......
potreb
Ehh, to może jednak str_replace biggrin.gif
  1. <?php
  2. $tekst ='<img width="233" height="175" alt="" src="adresik_pnrazka"/>';
  3. $wynik = str_replace('src="', 'src="res.php?width=175&height=175&adres=', $tekst);
  4. ?>


I tu problemów chyba nie będziesz już miał.
The Night Shadow
Potreb... to co piszesz jest bez sensu względem problemu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.