WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Ladda ner fil via php (https://www.wn.se/forum/showthread.php?t=1050887)

habbcraw 2011-11-09 12:59

Ladda ner fil via php
 
Jag har testat denna kod för att ladda ner från en annan
webbserver, men filen blir tom vet att det beror på ett visst skydd.
Går det att undvika skyddet?

Min kod:

<?php
$source = copy("http://exempel.com/fil.txt");
$data = file_get_contents($source);
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/data/filen.txt', 'w+');
fwrite($fp, $data);
fclose($fp);

?>

thorsell 2011-11-09 13:17

Citat:

Ursprungligen postat av habbcraw (Inlägg 20423273)
Jag har testat denna kod för att ladda ner från en annan
webbserver, men filen blir tom vet att det beror på ett visst skydd.
Går det att undvika skyddet?

Min kod:

<?php
$source = copy("http://exempel.com/fil.txt");
$data = file_get_contents($source);
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/data/filen.txt', 'w+');
fwrite($fp, $data);
fclose($fp);

?>

Kanske bättre att använda file_get_contents() direkt på filen istället för copy()?

<?php
$data = file_get_contents("http://exempel.com/fil.txt");

if(empty($data))
die('Inget innehåll i fil');

$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/data/filen.txt', 'w+');
fwrite($fp, $data);
fclose($fp);

?>

habbcraw 2011-11-09 15:24

Redan testat, men tack.

Jake.Nu 2011-11-09 15:51

Är det överhuvudtaget tillåtet att ansluta till en extern adress på port 80 från ditt webhotell/din server?

I.s.f. så får du antingen använda fsockopen eller kanske cURL eftersom allow_url_fopen inte verkar vara tillåtet.

thorsell 2011-11-09 16:10

Fungerar inte file_get_contents() så har loopia en alternativ lösning här via cURL...

https://support.loopia.se/wiki/%...j%C3%A4rrplats

Kruger 2011-11-09 19:18

+1 på cURL

habbcraw 2011-11-09 20:41

har kollat lite på curl tidigare, men vet inte om mitt webbhotell stöder detta.

Alex 2011-11-09 21:58

Skriv då vad du har för webbhotell... Har du bytt "http://example.com/fil.txt" till en riktig adress? Testa om du får ut någon data överhuvudtaget:
PHP-kod:

var_dump($data

Varför kör du copy()? Har du läst dokumentationen för den funktionen? Den funktionen returnerar en boolean.

Testa enbart:
PHP-kod:

$data file_get_contents("http://example.com/fil.txt"); 
var_dump($data);
die(); 

För att se om du får ut någon data överhuvudtaget. Återkom när du har gjort det!

tartareandesire 2011-11-09 21:58

Citat:

Ursprungligen postat av habbcraw (Inlägg 20423353)
har kollat lite på curl tidigare, men vet inte om mitt webbhotell stöder detta.

Vilket webbhotell stödjer inte curl? :)

MRDJ 2011-11-10 09:23

Citat:

Ursprungligen postat av Kruger (Inlägg 20423341)
+1 på cURL

Curl är mycket snabbare än file_get_contents.

Erat webbhotell borde ha stöd för det, jag kör själv Curl hos Binero och det funkar fint!


Alla tider är GMT +2. Klockan är nu 13:53.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson