alex011251
23.05.2013, 22:15:41
Mam na forum przykladowo link do flasha, grafiki itp ktore ma sie wyswietlac w poscie
Jak sprawdzic czy np dana grafika swf,url istnieje?
W przypadku grafiki na poczatku rozwiazalem to jak nizej. Ale problem jest taki iz pobiera mi cala grafike po czym sprawdza czy istnieje a przy wiekszej aplikacji nie mozna sobie pozwolic na tracenie zasobow
Gdyby byla mozliwosc rozpoznac po 1bajcie to juz by bylo super. Na poczatku myslalem by zrobic to jakos naglowkami. Ale je sie da zmodyfikowac . Pomyslow juz mi brak
<?php
$external_link = 'http://ks3291483.kimsufi.com/allegro/szablon2/images/banner2.jpg';
echo '<img src="'.$external_link.'" />'; } else {
echo "nic tam nie ma :("; }
?>
StrefaPi
24.05.2013, 00:18:14
inaczej niż nagłówkiem nie sprawdzisz
$url = "http://ks3291483.kimsufi.com/allegro/szablon2/images/banner2.jpg";
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 200) {
echo("<img src=\"".$external_link."\" />"); }
else {
echo("nic tam nie ma :("); }
curl_close($handle);
alegorn
24.05.2013, 08:00:14
duplikujesz posty.
odpisalem ci we wczesniejszym
StrefaPi:: do sprawdzania naglowkow jest osobna funkcja get_headers, nie ma potrzeby cURL'a zaprzęgać.
j.
alex011251
24.05.2013, 08:28:27
Wlasnie zalozylem ten post bo tamten ma teraz mniej wspolnego z obecnym

A ty bardziej tamten miesza tylko w forum..
Nie ma sensu zaprzegac curla?
Ja jestem za to zdanie iz jest sens.
Get_headers wystarczy spreparowac naglowek i po ptokach. OpenImageSize pobiera caly obrazek i nie sprawdzi mi np obiektu flash.
Najlepszym chyba rozwiazaniem jest wlasnie CURL
StrefaPi
24.05.2013, 09:03:02
podobno curl jest szybszy :P
alegorn
24.05.2013, 09:54:15
w get_headers spreparujesz nagłówki powiadasz...
i odwołanie się do tych samych nagłówków przez cURL jest na to lekarstwem... ?
nie skomentuje..
co do prędkości - musiałbym sprawdzić, zresztą to tez zależy od ustawień cURL'a bo tam możesz wysterować czas oczekiwania, jak i automatyczne przejście do przekierowania... czyli innego adresu.
oczywiście, to zależy od konfiguracji biblioteki.. czyli czegoś na co nie zawsze mamy wpływ..
zresztą.. jak się uprzeć, to przecież można i jeszcze dziesięć innych sposobów wymyślić...
edit:: to już nie należało do tego tematu
StrefaPi
24.05.2013, 10:12:36
z tego co czytałem w kilku miejscach (przy standardowej konfiguracji) podobno curl jest "prawie" 2 razy szybszy i zużywający minimalnie mniej pamięci... /ale sam tego nie sprawdziłem/
alegorn ma rację i nie ma rady na preparowanie nagłówka
alex011251
24.05.2013, 10:15:38
chodzilo mi tylko by zabezpieczyc sie przed tym co wam wyskoczylo.
Do tego jes potrzebny filtr przed i filtr w czasie rzeczywistym.
Cos szybkiego i co najwazniejsze co nie pozera zasobow.
StrefaPi
24.05.2013, 10:18:34
otrzymałeś rozwiązanie... czy to taką funkcją czy inną - sprawdź które działa bardziej ekonomicznie, i tyle...
alex011251
24.05.2013, 10:20:10
Ja jestem za curlem

Bo tak patrze porownujac na serwie jest od headers szybszy.
zegarek84
24.05.2013, 13:52:22
tak na prawdę przy sekwencyjnym sprawdzaniu plików różnicy między curl'em a tą funkcją niemal nie będzie... różnica pojawi się dopiero przy prawidłowym skorzystaniu z curl_multi lub z surowych socketów (co było by trudniejsze) odpytując je asynchronicznie pisząc skrypt zdarzeniowo... dodatkowo warto mieć zapamiętane połączenie jeśli ponawiamy zapytanie z tym samym serwerem...
dodatkowo chciałbym nadmienić, iż obudowując odpowiednio curl_multi w klasę, pisząc zdarzeniową obsługę jego nie musimy znać na starcie liczby połączeń i w między czasie co odpowiedź możemy wykonywać inny fragment kodu... swoją drogą jak to się dobrze napisało to aż dziw był jak pewnej osobie skrypt bez przydzielania większych zasobów i uciekania do crona w jednym zapytaniu skrypt był wstanie zalogować się na ponad 500 forach, pobrać wymagane dane a następnie dodać temat w odpowiednim dziale (w sumie 3 zapytania HTTP co daje łącznie ponad 1500 zapytań ;D)
alex011251
25.05.2013, 14:43:22
Wlasnie zastanawia mnie zasobozernosc

Bo jezeli mam forum i go przeglada kilkaset osob i badz konkretny post i na nim dodane pare grafik ktore sa wyswietlane po wykonaniu curl badz get_headers czy to mi nie przymuli serwera. Bo to za kazdym razem musi sprawdzac czy grafika jest czy nie
Czy taie cos jes dobre? dopiero przestawiam sie na oop
class classSecurityBasicAuth {
public function __construct($url,$komunikat) {
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 200) {
echo("<img src=\"".$url."\" />"); }
else {
}
curl_close();
}}
StrefaPi
25.05.2013, 17:35:19
przetestuj :P
/ogólnie przy zwykłym wywołaniu przyśpieszenie z curla też jest, oczywiście nie takie jak w multi, ale moim zdaniem zauważalne/
alex011251
25.05.2013, 18:03:41
To wczesniejsza wersja ^^ Ogolnie to ten temat w OOP to nawet nie tyczy sie do konca tej klsy. Ale ogolnego programowawania w OOP
Przetestowalem dodajac 30obrazkow wadliwych.
Poradzilo sobie po 3s wiec szczerze mowiac przy takiej funkcji to nawet dobrze wyszlo

Liczac ze standardowo na forum nawet zawyzajac srednia to chyba po wylwolaniu strony moze jest dodawanych z 5obrazkow czasem wiecej

A do tego malo kto doklada jakis wadliwy. Wiec jestem jak najbardziej zadowolony z funkcji curl

Ale tylko pytanko czy calosc tego kodu co mi podeslales jest potrzebna. Czy czest nie jest zbedna
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.