[ TeSiC @ 18.11.2011. 21:53 ] @
Ima li neko primjer skripte sa kojom bi mogao sa neke url adrese da sacuvam sve slike u jedan folder.
recimo zadam mu neki url www.granit.rs
http://www.granit.rs/images/0naslovna1a.gif
http://www.granit.rs/images/separator1.gif
http://www.granit.rs/images/0onama1.gif
http://www.granit.rs/images/separator1.gif
http://www.granit.rs/images/0proizvodnja1.gif
http://www.granit.rs/images/separator1.gif
http://www.granit.rs/images/0usluge1.gif
http://www.granit.rs/images/separator1.gif
http://www.granit.rs/images/0reference1.gif
http://www.granit.rs/images/separator1.gif
http://www.granit.rs/images/0kontakt1.gif
i on sve slike koje nadje na sajtu snimi u neki folder.
[ Zlatni_bg @ 19.11.2011. 04:40 ] @
Prvo prihvatis ceo HTML kod stranice koju hoces da skeniras za slike:

Code (php):


$html = file_get_contents('http://domen.com/stranica.html');
 


Potom, skeniras stranicu za slikama:

Code:

$slike = array();
preg_match( '/src="([^"]*)"/i', $html, $slike ) ;


Sada si dobio niz koji ti sadrzi putanje do svih slika na stranici. Ovde: http://www.finalwebsites.com/forums/topic/php-file-download imas primer kako se skida neki fajl preko PHP-a na server. Sada radis foreach za svaku sliku, i izvrsavas ovaj gore kod tako da ti se svaka slika sacuva u odredjeni direktorijum na serveru.
[ doktor83 @ 20.11.2011. 16:41 ] @
CURL ti je prava stvar za ovako nesto.
Evo ti primer :

function save_image($img,$fullpath){
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);
if(file_exists($fullpath)){
unlink($fullpath);
}
$fp = fopen($fullpath,'x');
fwrite($fp, $rawdata);
fclose($fp);
}

$img - putanja ka slici
$fullpath - gde da snimis sliku
[ ColdKeyboard @ 20.11.2011. 21:46 ] @
E sad mozes da iskombinujes regex kod koji si dobio da izvuces slike is source code-a i ovu funkciju da sacuvas slike.

Ne znam koju kolicinu slika pokusavas da skines sa tog sajta i da li planiras bas sve slike da skines ali recimo mozes da uradis

preg_match_all() sa ovim regex sto si dobio i onda da radis foreach petlju da za svaki element koji je nadjen uradis save_image()

Probaj sam da iskombinujes pa ako ne bude radilo javi se da ti pomognemo.
[ TeSiC @ 21.11.2011. 13:58 ] @
Ljudi hvala vam puno. Problem rijesen upravo ovako kako je ColdKeyboard napisao. Radi kao sat

Hvala vam

Tesic

[ dalibor8888 @ 19.01.2012. 20:20 ] @
Imam sljedeci problem-iz xml fajla u kojem su linkovi slika pokusavam skinuti te slike u folder na mom serveru. Dole je kod koji uspjesno vadi linkove u varijablu $PRICE->SMALL_IMAGE i sve ih ispisuje u pretrazivacu. Ali ovaj dio sa skidanjem slika mi neradi.Pretpostavljam da se umjesto $img moze ubaciti $PRICE->SMALL_IMAGE ?
Dali u tom slucaju varijabla ide pod navodnike i kakve (obicne ili duple). Takoder ne znam kako tocno upisati $fullpath i dali isto ide pod navodnike
ovaj file ima putanju /home/cbithr/public_html/skidaj.php a zelim npr skinuti u folder "download" koji je isto u public_html
Hvala

<?php
// specify url of xml file
$url = "Laptopi2.xml";
// get xml file contents
$xml = simplexml_load_file($url);

// loop begins
foreach($xml->PRICE as $PRICE)
{

echo "<strong>LINK:</strong> ".$PRICE->SMALL_IMAGE."<br/>";

function save_image($PRICE->SMALL_IMAGE,$fullpath){
$ch = curl_init ($PRICE->SMALL_IMAGE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);
if(file_exists($fullpath)){
unlink($fullpath);
}
$fp = fopen($fullpath,'x');
fwrite($fp, $rawdata);
fclose($fp);
}

}

[ ColdKeyboard @ 23.01.2012. 01:00 ] @
Nema potrebe da mijenjas funkciju, treba samo da je pozoves. Ovo sto si ti napisao ne radi nista :)

Trebao bi ovako nekako da izgleda modifikovan kod:

Code:

<?php
//Funkciju stavi na pocetak fajla
function save_image($img,$fullpath){
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$rawdata=curl_exec($ch);
curl_close ($ch);
if(file_exists($fullpath)){
unlink($fullpath);
}
$fp = fopen($fullpath,'x');
fwrite($fp, $rawdata);
fclose($fp);
}


// specify url of xml file
$url = "Laptopi2.xml";
// get xml file contents
$xml = simplexml_load_file($url);

// loop begins
foreach($xml->PRICE as $PRICE)
{

$putanja_do_slike = "sacuvaj/sliku/ovde/slika.jpg";
save_image($PRICE->SMALL_IMAGE, $putanja_do_slike);

echo "<strong>Slika:</strong> <img src='$putanja_do_slike' /> <br/>";

}
[ dalibor8888 @ 24.01.2012. 22:17 ] @
Pozdrav Sasa -hvala na odgovoru
Isprobao sam tvoj kod ali mislim da je problem u linku sacuvaj/sliku/ovde/slika.jpg
Ustvari se desava da program pocne slidat slike ali stalno prekucava sliku preko slike jer je odredeno da se slika zova "slika.jpg" ili neko drugo ime koje odaberemo.
Znaci on ide uzimat redom foreach i kad skine jednu koju nazove slika.jpg onda skida drugu koju takoder naziva slika.jpg tj prekuca onu prvu jer ide u isti direktorij!
A ako ostavim samo link na direktorij (sacuvaj/sliku/ovde/) onda javlja gresku u parsiranju na tom redu gdje je link

Ja ustvari zelim da on poskida slike sa imenom kakvog imaju tamo na udaljenom serveru s kojeg skida.
Ovdje je jos jedan problem a to je da se linkovi slika u xml fajlu otvaraju drugacije nego su prikazani u xml fajlu npr:
<SMALL_IMAGE>https://www.it4profit.com/cata...LDF16MPBRA</SMALL_IMAGE>
kad ukucamo taj link onda pogledaj da se link u link baru promjenio u
https://content.it4profit.com/...160x160/100817115720530787.jpg

Taj dio sam rjesio otprilike ovako
<?php
// specify url of xml file
$url = "http://c-bit.hr/1/ASBIS/slika2.xml";
// get xml file contents
$xml = simplexml_load_file($url);

// loop begins
foreach($xml->PRICE as $PRICE)
{
$b=str_replace("https://www.it4profit.com/catalogimg/wic/1/", "", $PRICE->SMALL_IMAGE);
$c=$b . ".jpg" ;

Ove zadnje 2 varijable uklanjanju prvi dio linka i ispisuju ima slike npr PLDF16MPBRA.jpg (c$)

znaci konacno ime slike bi mi trebala biti varijabla $c a ne slika.jpg

Xml file se moze otvoriti na linku http://c-bit.hr/1/ASBIS/slika2.xml

[ dalibor8888 @ 30.01.2012. 21:56 ] @
Hej
Uz male modifikacije koda sam uspio srediti stvar. Bitno je funkciju staviti naprijed kako si napisao.
Trenutno imam jos jedan problem vezan za xml
u xml fajlu se nalazi link sa opisom proizvoda koji zelim nekako ubaciti u bazu ali nekontam kako odsjeci gornji dio sa oznakama veleprodaje ASBIS
dali se ovo moze kako rjesiti xml-om , php-om, DOM-om ili sl. ??

Evo link na xml fajl
http://c-bit.hr/1/ASBIS/PriceAvail6.xml
link opisa je pod tagom PRODUCT_CARD