Stiahnutie externeho suboru php

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2549
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Stiahnutie externeho suboru php

Príspevok od používateľa RP »

V adresari na adrese http://www.napriklad.sk/adresar/ su subory 1.jpg, 2.jpg, atd.

Ako ich stiahnem k sebe na disk, ci moj server php scriptom.

Skusam to takto:

Kód: Vybrať všetko

<?php

$filename = "http://www.napriklad.sk/adresar/1.jpg";

$handle = fopen($filename, "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);

$fp = fopen('1kopia.png', 'w');
fwrite($fp,$contents);
fclose($fp);

?>
no nefunguje mi to.
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: Stiahnutie externeho suboru php

Príspevok od používateľa pEpinko »

1. Mas zoznam tych suborov, ktore chces stiahnut?
2. Musi to byt v php? V tom sa nevyznam, ale v takom python ak mas zoznam suborov, tak je to na 5 riadkov.
Používateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2549
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Re: Stiahnutie externeho suboru php

Príspevok od používateľa RP »

pEpinko napísal:1. Mas zoznam tych suborov, ktore chces stiahnut?
2. Musi to byt v php? V tom sa nevyznam, ale v takom python ak mas zoznam suborov, tak je to na 5 riadkov.
1. Zoznam mam.
2. Python nepouzivam, ale v 5 riadkoch sa hadam zorientujem :) Teda ak k tomu napises ako sa to kompiluje a spusti.

k 1. povedzme ze mam subor s menami suborov (linkami na ne ak treba) s menom (retazcom) suboru vzdy na novom riadku

subory.txt - kde su nasledujuce riadky

1.gif
2.gif
3.gif
...
Používateľov profilový obrázok
pEpinko
Používateľ
Používateľ
Príspevky: 850
Dátum registrácie: Po 19. Máj, 2008, 09:31
Bydlisko: BA/NR

Re: Stiahnutie externeho suboru php

Príspevok od používateľa pEpinko »

Rozbehanie pythonu.

Stiahnes si python 3.x.x http://www.python.org/getit/ (je aj python 2.x.x, ale ten nie). Nainstalujes, spustis a podla tohoto http://www.annedawson.net/Python_Editor_IDLE.htm sa ti urcite podari spustit program.

A samotny program.

Kód: Vybrať všetko

import urllib.request

files = []

with open('subory.txt') as f:
    for line in f:
        files.append(line.strip())

for f in files:
    mysock = urllib.request.urlopen("http://www.cosi.sk/%s" % f)
    file = mysock.read()
    out = open("%s" % f, 'wb')
    out.write(file)
    out.close()
Do pola files si nastrkas tie nazvy suborov. For cyklus potom prejde vsetky subory a stiahne ich do adresara z ktoreho je skript spusteny. Namiesto http://www.cosi.sk/ daj webovu adresu toho adresara z ktoreho to chces.

A aby som nezabudol, v pythone musis dodrziavat konzistentne odsadzanie textu, neviem ako sa to bude dat nakopirovat z tohoto prispevku, ale vsetko su to tabulatory. Cize

Kód: Vybrať všetko

with open('subory.txt') as f:
<tab>for line in f:
<tab><tab>files.append(line.strip())
faugusztin
Moderátor
Moderátor
Príspevky: 15054
Dátum registrácie: Ut 26. Feb, 2008, 14:00
Bydlisko: Bratislava/Štúrovo

Re: Stiahnutie externeho suboru php

Príspevok od používateľa faugusztin »

@RP - PHP :
1) tvoj priklad by fungoval, keby si nemal zakazane allow_url_fopen. http://www.php.net/manual/en/filesystem ... -url-fopen
2) PHP CURL funkcie
3) vykasli sa na PHP a proste pusti :

Kód: Vybrať všetko

wget -i nazov suboru

Kód: Vybrať všetko

  -i,  --input-file=FILE     download URLs found in FILE.
Používateľov profilový obrázok
Scorp
Používateľ
Používateľ
Príspevky: 2225
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus

Re: Stiahnutie externeho suboru php

Príspevok od používateľa Scorp »

pEpinko napísal:Rozbehanie pythonu.

Stiahnes si python 3.x.x http://www.python.org/getit/ (je aj python 2.x.x, ale ten nie). Nainstalujes, spustis a podla tohoto http://www.annedawson.net/Python_Editor_IDLE.htm sa ti urcite podari spustit program.

A samotny program.

Kód: Vybrať všetko

import urllib.request

files = []

with open('subory.txt') as f:
    for line in f:
        files.append(line.strip())

for f in files:
    mysock = urllib.request.urlopen("http://www.cosi.sk/%s" % f)
    file = mysock.read()
    out = open("%s" % f, 'wb')
    out.write(file)
    out.close()
Do pola files si nastrkas tie nazvy suborov. For cyklus potom prejde vsetky subory a stiahne ich do adresara z ktoreho je skript spusteny. Namiesto http://www.cosi.sk/ daj webovu adresu toho adresara z ktoreho to chces.

A aby som nezabudol, v pythone musis dodrziavat konzistentne odsadzanie textu, neviem ako sa to bude dat nakopirovat z tohoto prispevku, ale vsetko su to tabulatory. Cize

Kód: Vybrať všetko

with open('subory.txt') as f:
<tab>for line in f:
<tab><tab>files.append(line.strip())
ešte by sa tam možno hodilo exception, aby sa to nezosypalo ak súbor neexistuje, timeout, etc
Me like Pentium
Používateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2549
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Re: Stiahnutie externeho suboru php

Príspevok od používateľa RP »

Vdaka za rady :)

Nakoniec som oscriptoval wget, pekne to funguje.

Návrat na "Programovanie"