zastanawia mnie co jest z moim skryptem nie tak.
Jego działanie polega na pobieraniu zdjęć z serwera zewnętrznego.
Ze względu na ciągłe problemy z nieistniejącymi plikami (img wstawiony, ale niema go na serwerze) kombinuję ze wczesnym sprawdzaniem czy plik istnieje.
Najprostszym rozwiązaniem jakie wypaczyłem w manualu to sprawdzenie headera ale nie działa, albo przynajmniej nie zawsze działa.
Miałby ktoś jakieś uproszczenie, albo najlepiej wrzucenie wszystkiego w jedną funkcję?
function check_header($url){ $check_notfound = get_headers($url); $check_notfound = $check_notfound[0]; return $check_notfound; } function save_image($inPath,$outPath){ $check_notfoundb = get_headers($inPath); $check_notfoundb = $check_notfoundb[0]; if(($check_notfoundb == 'HTTP/1.1 404 Not Found') OR ($check_notfoundb == 'not found')){ //Error $out = "Error_pliku"; }else{ if(!$inPath || !$outPath){ $out = "Error_pliku"; }else{ } } } } foreach($obrazy as $imxg){ if((check_header($imxg) == 'HTTP/1.1 404 Not Found') OR (check_header($imxg) == 'not found')){ }else{ $check_si = $fold . $name; save_image($imxg,$check_si); $black = "000000"; $image = WideImage::load("" . $fold.$name . ""); $resize1 = $image->resize(800, 600); $resize2 = $resize1->resizeCanvas('800', '600', 'center', 'center', $black); $resize2->saveToFile("" . $fold.$name . "", 80); $add_new_file = mysql_query("INSERT INTO `photos`(`ph_id`, `ph_user`, `ph_vehi`, `ph_cate`, `ph_imag`, `ph_fold`, `ph_data`) VALUES (NULL, NULL, '$id', '$cat_gogo', '" . $name . "', '$catnbr', NOW())"); } } }
Nie mam już pomysłu jak mogę poprawić ten kod, tak aby w końcu działały absolutnie poprawnie i był całkowicie odporny na errory spowodowane brakiem pliku(ów).
Z góry dziękuję za pomoc.