Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]preg_replace ominięcie podmienionego
szmerak
post
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 12
Dołączył: 23.11.2006
Skąd: WL

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


  1. function jest_plik($url)
  2. {
  3. $file = @fopen ("$url", "r");
  4. return ($file ? true : false);
  5. }
  6.  
  7. $url = preg_match_all("@\[img\](http:\/\/[a-zA-Z0-9\/._-]+)\[\/img\]@i", $tekst, $image);
  8. if($url != 0) {
  9. foreach( $image[1] as $imageurl )
  10. {
  11. if(jest_plik($imageurl))
  12. {
  13. $attr = getimagesize($imageurl);
  14. if($attr[0] > 500)
  15. {
  16. $tekst = preg_replace("#\[img\](.*?)\[/img\]#si",'<img src="\\1" alt="" width=500 />',$tekst);
  17. }else{
  18. $tekst = preg_replace("#\[img\](.*?)\[/img\]#si",'<img src="\\1" alt="" />',$tekst);
  19. }
  20.  
  21. }
  22.  
  23. }
  24.  
  25. }

Mam taki kodzik który zmniejsza obrazek jeśli jest większy od 500 do 500 a jeśli mniejszy to taki jaki jest.
I odziwo kod jest napisany dobrze ja przynajmniej nie znalazłem błędów.
I wszystko pięknie działa na localhoscie
Tylko gdy wrzuce to na serwer to już nie zmiejsza tylko wstawia całe zdjęcie.

Nieprawda że dziwne?


niee jednak nie działa na localhoscie jak powinno


Ten post edytował szmerak 21.05.2011, 10:54:19
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
szmerak
post
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 12
Dołączył: 23.11.2006
Skąd: WL

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


$attr zawiera width kazdego obrazka czyli tak jak powinno wszystko pięknie działa tylko ten warunek if($attr[0] > 500)
...nie wiem co z nim nie tak

i jeszcze podkreśle to że z jednym obrazkiem nie ma problemu ale gdy są już dwa skrypt nawala

//edit
już znalazłem w czym problem
  1. if($attr[0] > 500)
  2. {
  3. $tekst = preg_replace("#\[img\](.*?)\[/img\]#si",'<img src="\\1" alt="" width=500 />',$tekst);
  4. }else{
  5. $tekst = preg_replace("#\[img\](.*?)\[/img\]#si",'<img src="\\1" alt="" />',$tekst);
  6. }

Podmienia za pierwszym razem <img src bez width> gdy obrazek mniejszy od 500
a gdy znajdzie z widthem wiekszym to już drugie obkrążenie się tylko liczy czyli podmienia wszedzie width=500 dla niejasności gdyby w ostatnim okrążeniu był obrazek mniejszy wszędzie by wstawił bez width=500.
Wniosek ostatnie obkrążenie jest ważne

to teraz pytanie jak zrobić aby po zamienieniu jednego omijał go i przechodził do nastepnego a nie wszedzie podmienial
pewnie źle to jest zrobione prosze o jakies wskazowki hmm... myślałem aby jakoś je posortować...

Ten post edytował szmerak 21.05.2011, 10:18:13
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 05:01