Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rozmiar zdjęcia z serwera zewnętrzengo, Jaka metoda najszybsza i najbardziej wydajna.
my_key
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 5.03.2006

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


Witam.

Potrzebuje pobrać rozmiar zdjęcia, które znajduje się na zewnętrznym folderze, a co najważniejsze potrzebuje to zrobić szybko.

Rzecz ma się następująco... łączę się przy użyciu php przez protokół FTP z serwerem, pobieram listę zdjęć i chcę wyświetlić miniatury tych zdjęć i jednocześnie wyświetlić rozmiar oryginalnego zdjęcia, dlatego potrzebuję szybkiego pobierania rozmiaru zdjęcia.

Mogę to zrobić za pomocą funkcji
  1. <?php
  2. ?>

I działa. Mogę to zrobić za pomocą biblioteki CURL
  1. <?php
  2. public function getRemoteImageSize($url = ''){
  3.        if(function_exists('curl_init') && $url){
  4.            if(($ch = curl_init()) === false) return false;
  5.                       
  6.            curl_setopt($ch, CURLOPT_URL, $url);
  7.            curl_setopt($ch, CURLOPT_HEADER, 0);
  8.            curl_setopt($ch, CURLOPT_NOBODY, 0);
  9.            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  10.            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  11.            $curlImg = curl_exec($ch);
  12.            
  13.            curl_close($ch);
  14.            
  15.            $image = imagecreatefromstring($curlImg);
  16.            $ret['width'] = imagesx($image);
  17.            $ret['height'] = imagesy($image);
  18.            
  19.        }
  20.        return $ret;
  21.    }
  22. ?>

i też działa.

Problem pojawia się gdy muszę pobrać tą informację dla większej ilości zdjęć. Dlatego potrzebuję szybkiej metody aby to zrobić, może ktoś ma jakiś pomysł?

Z góry dziękuję za odpowiedź.
Pozdrawiam.

Ten post edytował my_key 28.07.2009, 18:53:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
kilas88
post
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 25
Dołączył: 27.01.2007

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


imagesx" title="Zobacz w manualu PHP" target="_manual
imagesy" title="Zobacz w manualu PHP" target="_manual

może tak?
Go to the top of the page
+Quote Post
erix
post
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Problem pojawia się gdy muszę pobrać tą informację dla większej ilości zdjęć. Dlatego potrzebuję szybkiej metody aby to zrobić, może ktoś ma jakiś pomysł?

Zrób sobie skrypt, który działa po stronie serwera źródłowego - wywołanie ze ścieżką do obrazka, zwraca Ci wymiary.
Go to the top of the page
+Quote Post
my_key
post
Post #4





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 5.03.2006

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


Jak możesz zaobserwować korzystam z tych funkcji...
Go to the top of the page
+Quote Post
kilas88
post
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 25
Dołączył: 27.01.2007

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


Cytat(my_key @ 28.07.2009, 19:55:50 ) *
Jak możesz zaobserwować korzystam z tych funkcji...

Nie zauważyłem, sory.

A nie można przechowywać danych o rozmiarach w bazie danych? Jeśli nie ma w bazie to pobierasz i zapisujesz rozmiary, jeśli jest zapisane w bazie to tylko wyświetlasz. Coś na wzór buforowania.
Go to the top of the page
+Quote Post
my_key
post
Post #6





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 5.03.2006

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


Zapisanie danych w bazie danych nie wchodzi w grę.

A może ktoś wie na których bitach plików graficznych zapisane są rozmiary obrazu? Albo ktoś zna link gdzie mógłbym to wyczytać?

Ten post edytował my_key 28.07.2009, 19:49:48
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wikipedia: format pliku i przełączasz na angielski.
Go to the top of the page
+Quote Post
flashdev
post
Post #8





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(my_key @ 28.07.2009, 20:49:14 ) *
Zapisanie danych w bazie danych nie wchodzi w grę.

A może ktoś wie na których bitach plików graficznych zapisane są rozmiary obrazu? Albo ktoś zna link gdzie mógłbym to wyczytać?


Jak znajdziesz rozwiązanie problemu, to byłbym zobowiazany za podzielenie się tą wiedzą.
Go to the top of the page
+Quote Post
ndx
post
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 6
Dołączył: 11.11.2005

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


Hej,

Mogę się mylić, ale chyba convert może Ci pomóc.
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://www.wischik.com/lu/programmer/get-image-size.html
Go to the top of the page
+Quote Post
DJ ProG
post
Post #11





Grupa: Zarejestrowani
Postów: 6
Pomógł: 2
Dołączył: 27.08.2008

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


http://pastebin.4programmers.net/307

ale tak jak już podlinkował erix - getimagesize() pobiera dane z nagłówków,
dlatego jest bardziej optymalny niż download całego pliku i przetwarzanie go przez GD...

Ten post edytował DJ ProG 28.07.2009, 21:07:22
Go to the top of the page
+Quote Post
my_key
post
Post #12





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 5.03.2006

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


Hmm to skoro metoda getimagesize() pobiera informacje z nagłówków to powinna być najszybsza... z tym, że dla wolnego łącza przy większej ilość obrazków jest jeszcze za wolna i się nie wyrabia w czasie wykonywania skryptu, stąd było moje pytanie, czy jest coś szybsze... No ale chyba nie ma, wiec pozostaje AJAX i doczytywanie danych.
Go to the top of the page
+Quote Post
erix
post
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
z tym, że dla wolnego łącza przy większej ilość obrazków jest jeszcze za wolna i się nie wyrabia w czasie wykonywania skryptu, stąd było moje pytanie, czy jest coś szybsze...

Hmm, nie używałem nigdy getimagesize" title="Zobacz w manualu PHP" target="_manual dla zdalnych plików, ale jeśli skorzystasz z tej lekko zmodyfikowanej wersji, to wystarczy odczytać max pół kilobajta każdego pliku.

Ale to nie zmienia faktu, że najlepiej by było zrobić skrypt-dyspozytor, który by w odpowiedzi podawał same wymiary.
Go to the top of the page
+Quote Post
my_key
post
Post #14





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 5.03.2006

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


Cytat(erix @ 29.07.2009, 09:31:11 ) *
Ale to nie zmienia faktu, że najlepiej by było zrobić skrypt-dyspozytor, który by w odpowiedzi podawał same wymiary.


Masz na myśli skrypt umieszczony na serwerze który zwróci wymiary zdjęcia?
Jeżeli tak, to jest to pewne rozwiązanie, jednak nie chciałbym się uciekać do takiej metody aby uniknąć wgrywania dodatkowego skryptu dla wielu kont.
Go to the top of the page
+Quote Post
erix
post
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Masz na myśli skrypt umieszczony na serwerze który zwróci wymiary zdjęcia?

Właśnie.

Cytat
Jeżeli tak, to jest to pewne rozwiązanie, jednak nie chciałbym się uciekać do takiej metody aby uniknąć wgrywania dodatkowego skryptu dla wielu kont.

No to jaki problem odpalać go via sudoers? Najmniejszy ruch wtedy byś miał, no bo co by ten skrypt więcej zwracał? 123x456? Max 10 bajtów, a nie kilkaset, gdybyś musiał przez nagłówki pobierać (GIF/PNG nie, ale JPEG).
Go to the top of the page
+Quote Post
my_key
post
Post #16





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 5.03.2006

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


Cytat
No to jaki problem odpalać go via sudoers?

Chyba nie kapuje:)

Cytat
Najmniejszy ruch wtedy byś miał, no bo co by ten skrypt więcej zwracał? 123x456?


Dokładnie tak, potrzebuje jedynie pobrać rozmiar danego zdjęcia.

Skrypt będzie działał na zasadzie bardzo prostego klienta FTP, mam dane do FTP, łączę się do serwera i pobieram pliki... Musiałbym umieszczać na każdym serwerze z którym się łączę skrypt odpowiedzialny za zwrócenie rozmiaru zdjęcia.
I pewnie jeżeli nie znajdę innego rozwiązania tak będę musiał postąpić.
Pytanie tylko o co chodzi z tym "sudoers" (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 23.12.2025 - 13:51