Avatar billede bgjensen Nybegynder
29. maj 2005 - 13:22 Der er 8 kommentarer og
1 løsning

hente billede fra en hjemmeside

Hey.

Kan man lave et PHP script som henter et billede fra en hjemmeside og kopiere det ned på ens harddisk. Problemet er bare at jeg ikke ved hvad billedet hedder, har kune linket til den side hvor det ligger, men altså ikke navnet på selve billedet, jeg har et viual basic som gør det. Men kan man lave sådanne en funktion i PHP????
Avatar billede kargo1 Nybegynder
29. maj 2005 - 13:52 #1
Hej

Jeg tror, du kan gøre det med almindelige filfunktioner som fopen, readfile, copy osv. Først indlæser du siden, hvor billedet ligger og gennemsøger det for "<img=", derefter kopierer du billedet til din egen PC.
Jeg har tidligere gjort noget lignende med en tekstfil, men jeg har desværre ikke koden længere. Det bude kunne lade sig gøre.
Avatar billede bgjensen Nybegynder
29. maj 2005 - 15:49 #2
det hvar også noget i den stil som jeg havde tænkt mig, men kan ikke lige helt få lavet en kode som kan gøre det, så jeg håber da at der er en som kan :D
Avatar billede coderdk Praktikant
29. maj 2005 - 16:33 #3
Jeg har lige svaret på et lignende spm her: http://eksperten.dk/spm/621487
Avatar billede bgjensen Nybegynder
29. maj 2005 - 17:51 #4
nu har jeg det her:

$url = "http://www.imdb.com/title/tt0399201/";
$cnt = file_get_contents( $url );
if ( preg_match('!(<img border="0" alt="cover" src="http://ia.imdb.com/media/imdb/[^"]+)!i',$cnt,$m) )
{
  echo $m[1];
}
else
{
  echo 'Fandt intet...';
}


den giver dette resultat:
<img border="0" alt="cover" src="http://ia.imdb.com/media/imdb/01/I/47/28/19m.jpg

jeg skal kun bruge selve linket altså fra http hvordan får jeg den til det?
og hvordan får jeg kopieret det ned på harddisken?
Avatar billede coderdk Praktikant
29. maj 2005 - 18:08 #5
Prøv:

if ( preg_match('!<img border="0" alt="cover" src="(http://ia.imdb.com/media/imdb/[^"]+)!i',$cnt,$m) )
{
  $pic = file_get_contents( $m[1] );
}
Avatar billede bgjensen Nybegynder
29. maj 2005 - 18:44 #6
her er hvad jeg har nu men det virker ikke!

<?php

$url = "http://www.imdb.com/title/tt0399201/";
$cnt = file_get_contents( $url );

if ( preg_match('!<img border="0" alt="cover" src="(http://ia.imdb.com/media/imdb/[^"]+)!i',$cnt,$m) )
{
  $pic = file_get_contents( $m[1] );

    // Billede upload
    $upload_bibliotek = "./pics/film";

    //Her skal filen flyttes fra
    $fra = $pic;

    //Her er vores destination
    $til = $upload_bibliotek . "/test.jpg";

    //Her sker det magiske:
    move_uploaded_file($fra, $til);
    // Slut på billede upload

    echo "BILLEDET ER DOWNLOADET";

}
else
{
  echo 'Fandt intet...';
}

?>
Avatar billede coderdk Praktikant
29. maj 2005 - 19:23 #7
Erh, du uploader jo intet, derfor skal du ikke bruge move_uploaded_file...

<?php

$url = "http://www.imdb.com/title/tt0399201/";
$cnt = file_get_contents( $url );

if ( preg_match('!<img border="0" alt="cover" src="(http://ia.imdb.com/media/imdb/[^"]+)!i',$cnt,$m) )
{
    $pic = file_get_contents( $m[1] );

    $til = $upload_bibliotek . "/test.jpg";

    $fp = fopen( $til, 'w' );
    fwrite( $fp, $pic );
    fclose( $fp );

    echo "BILLEDET ER DOWNLOADET";

}
else
{
  echo 'Fandt intet...';
}

?>
Avatar billede bgjensen Nybegynder
29. maj 2005 - 20:25 #8
nå ja, ved ikke hvad jeg tænkte på :D
men nu virker det, thx skal du have, smid et svar så får du nogle point.
Avatar billede coderdk Praktikant
29. maj 2005 - 20:37 #9
Bare i orden :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester