Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne, wycianie znacznika img
Forum PHP.pl > Forum > Przedszkole
cytrynek
Mam pewien problem z wyrażeniami regularnymi. Otóż mam kawałek kodu zapisanego do zmiennej $_POST['artykul']:
  1. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4495.jpg&w=250" alt="" />


I chciałbym go zmienić na coś takiego:
  1. <a href=pliki/obrazy/aktualnosci/4495.jpg><img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4495.jpg&w=250" alt="" /></a>


Robię to w ten sposób ale nic nie wychodzi
  1. <?php
  2. $_POST['artykul']=preg_replace('#(<img src=\"/obrazskala.php?obrazek=)(W)(.jpg&w=250\" alt=\"\" />)#', "<a href=2.jpg>123</a>", $_POST['artykul']);
  3. ?>


Proszę o pomoc
gox
a tak?

  1. <?php
  2. preg_match('#/([0-9])+.#', $_POST['artykul'], $id);
  3. $_POST['artykul'] = "<a href=pliki/obrazy/aktualnosci/$id[1].jpg>$_POST['artykul']</a>";
  4. ?>
cytrynek
No tak z tym, że ten przykład jest dobry gdy nazwa pliku składa się z cyfr. Natomiast jeżeli nazwa pliku składa się z różnych znaków to niestety nie zadziała.

Jeszcze raz opiszę swój problem.
Mam zmienną $_POST gdzie znajduje się tekst wraz z ilustracjami. Chciałbym aby do tych ilustracji prowadził link. Dlatego potrzebuję takiego wyrażenia, które wycina fragment kodu z obrazka i tworzy z niego link.

Przykład kodu $_POST['artykul']:

  1. To jest jakiś tekst. Poniżej znajduje się obrazek
  2. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4495.jpg&w=250" alt="" />
  3. To jest jakiś tekst. Poniżej znajduje się obrazek
  4. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4496.jpg&w=250" alt="" />


Chciałbym aby przerobiony kod wyglądał w ten sposób:
  1. To jest jakiś tekst. Poniżej znajduje się obrazek
  2. <a href=pliki/obrazy/aktualnosci/4495.jpg>
  3. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4495.jpg&w=250" alt="" />
  4. </a>
  5. To jest jakiś tekst. Poniżej znajduje się obrazek
  6. <a href=pliki/obrazy/aktualnosci/4496.jpg>
  7. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4496.jpg&w=250" alt="" />
  8. </a>


Dziękuję za pomoc.
gox
Roznych znakow powiadasz....

a tak:?


#/([^/\.])+\.#

smile.gif
gox
albo tak:

#/([^/\.])+\.(jpg|bmp|gif|png|wbmp|tiff|tif|jpeg)[ "\'&]+#ism

czy tak
#/([^/\.])+\.(jpg|bmp|gif|png|wbmp|tiff|tif|jpeg)[^a-z]+#ism

albo samo takie:
#/([^/\.])+\.(jpg|bmp|gif|png|wbmp|tiff|tif|jpeg)#ism
cytrynek
No dobrze wiem, jak uzyskać samą nazwę pliku. A jak wstawić ją za pomocą wyrażenia w coś takiego ?
  1. <a href=pliki/obrazy/aktualnosci/4495.jpg>
  2. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4495.jpg&w=250" alt="" />
  3. </a>
794467
tak ło

  1. <?php
  2.  
  3. preg_match('#(...)#', $data, $img_name);
  4.  
  5. ?>
  6.  
  7. <a href=pliki/obrazy/aktualnosci/<?=$img_name?>.jpg>
  8. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/<?=$img_name?>.jpg&w=250" alt="" />
  9. </a>
cytrynek
To chyba nie załatwi sprawy, ponieważ podmieni tylko dla 1 wyrażenia. A ja chciałbym aby to było dla wszystkich ilustracji. Prawdopodobnie z preg_replace. Ale niestety nie wiem jak to zrobić sad.gif

Może przypomnę. Mam coś takiego:
  1. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4495.jpg&w=250" alt="" />


A chcę aby było tak:
  1. <a href=pliki/obrazy/aktualnosci/4495.jpg>
  2. <img src="/obrazskala.php?obrazek=pliki/obrazy/aktualnosci/4495.jpg&w=250" alt="" />
  3. </a>


Naprawdę nikt nie wie ? sadsmiley02.gif
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.