Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] powiększanie zdjęcia w tekście
dachu
post 30.09.2011, 11:25:57
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


Witam,
Chciałbym zrobić coś takiego, w tekście mam zdjęcia,, np. zdjecie.jpg , jednocześnie na ftp ładowane jest zdjęcie o tej samej nazwie, tylko z końcówką (_b) - zdjecie_b.jpg (jest to zdjęcie powiększone).
Nie wiem jak napisać skrypt, dzięki któremu w tekście sprawdzane było by czy istnieje _b (itp) jeśli tak, to zamiana była by zapisu na powiększenie:

  1. <a href="images/zdjecie.jpg" id="lightbox"><img src="images/zdjecie_b.jpg" /></a>


czyli zapis do bazy treści był by np:

  1. blb ble ble ble <img src="images/zdjecie.jpg" /> ble ble ble


jeśli jest ta sama nazwa pliku na serwerze: zdjecie_b.jpg to zapis, powiększający zdjęcie w lightboxie:

  1. blb ble ble ble <a href="images/zdjecie.jpg" id="lightbox"><img src="images/zdjecie_b.jpg" /></a> ble ble ble


lub inny sposób,, galeria odpada,,, zależy mi na tym, żeby zdjęcie było osadzane gdziekolwiek w tekście a nie szablonowo :|
prosze o pomoc

Ten post edytował dachu 30.09.2011, 11:26:58
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
nospor
post 30.09.2011, 11:41:44
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wyrażeniem regularnym pobierasz nazwę zdjęcia, sprawdzasz czy to zdjęcie istnieje na ftp i jeśli tak to zamieniasz na wersję jaką chcesz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
deha21
post 30.09.2011, 22:44:20
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Jeśli dobrze zrozumiałem to chodzi o zwykły warunek IF z użyciem file_exists i pathinfo (z rozbiciem na filename i extension), hm?


--------------------
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 06:50:35
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




to musisz jeszcze użyć preg_match oraz str_replace.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dachu
post 3.10.2011, 08:35:31
Post #5





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


Pokombinowałem w taki sposób i działa,,, ale tylko dla pierwszego napotkanego obrazka :/ a chciałbym dla każdego ...

  1. preg_match ("/<img(.*?)>/is", $tresc, $znalezione);
  2.  
  3. $tresc = str_replace($znalezione[0],'<a href="'.str_replace(".jpg","_b.jpg",$znalezione[1]).'">'.$znalezione[0].'</a>',$tresc);
  4.  
  5. $tresc = str_replace('<a href=" alt=""','<a href="',$tresc); // wywalam alt z znacznika a
  6. $tresc = str_replace('<a href=" src="','<a href="',$tresc); // wywalam src z znacznika a
  7. $tresc = str_replace('/"',' ',$tresc); // wywalam niepotrzebny "
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 08:40:55
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro nie sprawdzasz, czy plik istnieje, więc możesz użyć od razu preg_replace()
Jakbyś jednak chciał sprawdzać czy istnieje na ftp, to preg_match_all()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dachu
post 3.10.2011, 08:52:24
Post #7





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


z preg_match_all wywala mi Array ... :/
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 08:59:14
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Bo z preg_match_all masz użyc pętli.... preg_match_all zwraca ci wsyzstkie wyniki i ty masz przez nie przeiterować i w petli zamieniac.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dachu
post 3.10.2011, 09:35:27
Post #9





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


Cytat(nospor @ 3.10.2011, 07:59:14 ) *
Bo z preg_match_all masz użyc pętli.... preg_match_all zwraca ci wsyzstkie wyniki i ty masz przez nie przeiterować i w petli zamieniac.


tylko nie wiem jak to zapisać sad.gif
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 09:36:18
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




print_r($wynikpregmatchall);
zobacz co zawiera i poprostu użyj pętli.

FOREACH


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dachu
post 3.10.2011, 10:26:28
Post #11





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


na pętli,, ale to jest w treści np. artykułu...
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 10:28:12
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Sorki, ale Twojego poprzedniego posta ni w ząb nie kumam.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dachu
post 3.10.2011, 10:31:02
Post #13





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


  1. treść treść treść treść treść treść treść treść treść treść <img src="obrazek1.jpg" alt="" />treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść<img src="obrazek2.jpg" alt="" /> treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść


wyświetlony tekst z bazy powinien być taki:

  1. treść treść treść treść treść treść treść treść treść treść <a href="obrazek1_b.jpg"><img src="obrazek1.jpg" alt="" /></a> treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść <a href="obrazek2_b.jpg"><img src="obrazek2.jpg" alt="" /></a> treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść treść

Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 10:35:54
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to wiemy. Dostałeś juz rozwiązanie parę postów wcześniej.
preg_match_all zwraca ci tablicę szukanych fraz. Teraz lecisz po nich w petli i zamieniasz, dokładnie tak samo jak zamieniałeś dla jednego w preg_match.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpion
post 3.10.2011, 10:37:51
Post #15





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie prościej/lepiej preg_replace lub preg_replace_callback?
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 10:40:22
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




isałem już o preg_replace ale zostało to zignorowane. Pewnie dlatego, że trzeba sprawdzić czy taki plik ostnieje na ftp.
Co do preg_replace_callback() to jest równie "skomplikowane" co preg_match_all


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dachu
post 3.10.2011, 11:10:22
Post #17





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


Próbuje tak:, ale coś źle wyświetla,,,

  1. preg_match_all ("/<img(.*?)>/is", $tresc, $znalezione);
  2.  
  3. foreach ($znalezione as $wynik)
  4. {
  5.  
  6. $tresc= str_replace($wynik[0],'<a href="'.str_replace(".jpg","_b.jpg",$wynik[1]).'">'.$wynik[0].'</a>',$tresc);
  7. $tresc= str_replace('<a href=" alt=""','<a href="',$tresc);
  8. $tresc= str_replace('<a href=" src="','<a href="',$tresc);
  9. $tresc= str_replace('/"','',$tresc);
  10.  
  11. }
  12.  
  13. echo $tresc;
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 11:14:34
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




print_r($znalezione);
Patrzyłes jak ta tablicy wygląda? Pokaż nam.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
dachu
post 3.10.2011, 11:18:39
Post #19





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 30.08.2005

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


Cytat(nospor @ 3.10.2011, 10:14:34 ) *
print_r($znalezione);
Patrzyłes jak ta tablicy wygląda? Pokaż nam.


Array ( [0] => Array ( [0] => tutaj kod obrazka cały [1] => tutaj kod obrazka cały ) [1] => Array ( [0] => src="obrazek1.jpg" / [1] => src="obrazek2.jpg" / ) )

Ten post edytował dachu 3.10.2011, 11:20:03
Go to the top of the page
+Quote Post
nospor
post 3.10.2011, 11:24:18
Post #20





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i jak widać nazwy obrazków są pod indeksem 1 i dopiero po nim masz iterować.
  1. foreach ($znalezione[1] as $key=>$wynik){
  2. echo $wynik
  3. }


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.08.2025 - 12:56