Szukam skrypu do pobierania zdjęć z konkretnych url'i (lub ewentualnie proszę o podpowiedzi jak napisać) .
Jest sobie baza, z której wyciagam listę url'i do obrazków.
Następnie chcę zapuścić pętlę, która po kolei sprawdzi moje url'e do obrazków i pobierze jeśli tam będą.
Chcę aby skrypt można było uruchomić z przeglądarki i żeby zwracał jakieś podsumowanie całej operacji.
Problem polega na tym, że nie wiem jak napisać samą funkcję, która mi pobierze określonego adresu plik i zapisze go na moim serwerze w określonym katalogu i z określoną nazwą.
Dodam, że jestem raczej początkującym "programistą" php :-)
Proszę o pomoc lub ewentualnie oferty na maila.
Jeśli Waszym zdaniem będzie to pracochłonne zadanie to oczywiście mogę zlecić wykonanie tego skryptu i za niego zapłacić rozsądne pieniądze.
Pozdrawiam.
Juz sobie poradzilem.
Kod
<?php
// ponizsza linia uruchamia ponownie skrypt (odswieza okno przegldarki) po 1 sek od momentu zakończenia działania skryptu
// - stosuj gdy masz ograniczenie czasowe wykonywania jednego skryptu php
// u mnie było 30 sek, wiec ograniczałem query do tylu wierszy aby wykonywanie skryptu zmieściło się w czasie
// a następnie uruchamiałem skrypt ponownie automatycznie przy pomocy ponizszego magicznego wiersza kodu
header('Refresh: 1; url=http://www.twoj.serwer.pl/folder_z_tym_skryptem/skrypt_pobierajacy.php');
$sql = mysql_connect ('nazwa_serwera_mysql', 'nazwa_uzytkownika_mysql', 'haslo_uzytkownika_myslq');
mysql_select_db("isnasiel_inter");
//w tabeli były już linki do obrazków, które należało pobrac
$q = "SELECT product_code, product_image FROM sklep_product WHERE product_image LIKE \"http%\" ORDER BY product_code;";
$query = mysql_query($q);
while ($wiersz = mysql_fetch_row($query)) {
$plik = $wiersz[0];
$link1 = $wiersz[1];
// tu pobieramy plik z okreslonego adresu (link1)
// i zapisujemy go w odpowienim miejscu (output)
$output = "/home/public_html/images/product/".$plik.".jpg";
$fp = @fopen($link1, 'r');
$out = @fopen($output, 'w');
while(!feof($fp))
{
$data =& fgets($fp, 1024);
@fwrite($out, $data);
}
fclose($fp);
fclose($out);
// aktualizujemy w tablei informacje o pobranym pliku zdjecia i jednoczesnie wykluczamy pozycje z powtornego wykorzystania w pierwszej kwerendzie
$qa = "UPDATE sklep_product SET product_image ='".basename($output)."' WHERE product_code ='".$plik."';";
mysql_query($qa);
}
//sprawdzamy czy cos jeszce pozostalo do analizy
$query2 = mysql_query($q);
$w = mysql_fetch_row($query2);
//sprawdzamy ile jeszcze pozostalo do analizy
$pozostalo = mysql_num_rows($query2);
// wyswietlamy wyniki podsumowania konczac dzialanie skryptu rozlaczamy sie z baza
if (empty($w)){
echo " ZADANIE WYKONANE ( przetworzyłem wszystkie produkty z bazy ) <br>";
mysql_close($sql);
exit;
}
else{
echo " POZOSTAŁO JESZCZE ".$pozostalo." POZYCJI DO PRZETWORZENIA <br> ";
mysql_close($sql);
}
?>
// ponizsza linia uruchamia ponownie skrypt (odswieza okno przegldarki) po 1 sek od momentu zakończenia działania skryptu
// - stosuj gdy masz ograniczenie czasowe wykonywania jednego skryptu php
// u mnie było 30 sek, wiec ograniczałem query do tylu wierszy aby wykonywanie skryptu zmieściło się w czasie
// a następnie uruchamiałem skrypt ponownie automatycznie przy pomocy ponizszego magicznego wiersza kodu
header('Refresh: 1; url=http://www.twoj.serwer.pl/folder_z_tym_skryptem/skrypt_pobierajacy.php');
$sql = mysql_connect ('nazwa_serwera_mysql', 'nazwa_uzytkownika_mysql', 'haslo_uzytkownika_myslq');
mysql_select_db("isnasiel_inter");
//w tabeli były już linki do obrazków, które należało pobrac
$q = "SELECT product_code, product_image FROM sklep_product WHERE product_image LIKE \"http%\" ORDER BY product_code;";
$query = mysql_query($q);
while ($wiersz = mysql_fetch_row($query)) {
$plik = $wiersz[0];
$link1 = $wiersz[1];
// tu pobieramy plik z okreslonego adresu (link1)
// i zapisujemy go w odpowienim miejscu (output)
$output = "/home/public_html/images/product/".$plik.".jpg";
$fp = @fopen($link1, 'r');
$out = @fopen($output, 'w');
while(!feof($fp))
{
$data =& fgets($fp, 1024);
@fwrite($out, $data);
}
fclose($fp);
fclose($out);
// aktualizujemy w tablei informacje o pobranym pliku zdjecia i jednoczesnie wykluczamy pozycje z powtornego wykorzystania w pierwszej kwerendzie
$qa = "UPDATE sklep_product SET product_image ='".basename($output)."' WHERE product_code ='".$plik."';";
mysql_query($qa);
}
//sprawdzamy czy cos jeszce pozostalo do analizy
$query2 = mysql_query($q);
$w = mysql_fetch_row($query2);
//sprawdzamy ile jeszcze pozostalo do analizy
$pozostalo = mysql_num_rows($query2);
// wyswietlamy wyniki podsumowania konczac dzialanie skryptu rozlaczamy sie z baza
if (empty($w)){
echo " ZADANIE WYKONANE ( przetworzyłem wszystkie produkty z bazy ) <br>";
mysql_close($sql);
exit;
}
else{
echo " POZOSTAŁO JESZCZE ".$pozostalo." POZYCJI DO PRZETWORZENIA <br> ";
mysql_close($sql);
}
?>
Moze sie komus w/w kod przyda.
Umiesz liczyc ?
Licz na siebie.
Pozdrawiam.