10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)
  • Q:
    Bijdrager
    verwijderd-profiel

    IMDb afbeelding werkt niet echt

    Ik ben bezig om een Limelight-vervanger voor mezelf te maken. Daar kan je dus bijhouden welke films je wilt kijken, welke je hebt gekeken, rating etc.

    Ik gebruik http://mymovieapi.com om de info vandaan te halen.

    het werkt goed, maar gaat mis bij de afbeelding.

    Neem nou bijvoorbeeld deze: http://mymovieapi.com/?id=tt1951264&type=xml

    poster -> imdb = https://www.onemorething.nl/wp-content/themes/onemorething/external-image.php?src=http://ia.media-imdb.com/images/M/[email protected]_V1_SX214_.&ext=jpg&h=784314ab59c77a617712da4abf796fd4&t=1603632764

    poster -> cover = http://imdb-poster.b0.upaiyun.com/001/951/264.jpg!cover?_upt=faf6c1441385963936

    Beide links werken als je ze in je browser plakt.

    Maar als ik het met PHP print, krijg ik wel dit:

    , maar dan krijg je zo’n blauw plaatje dat die niet bestaat.

    Ligt het aan mij?

    Hoe kan ik dit oplossen?

    PS: < en > zijn vervangen door [ en ] in deze post

    Bijdrager
    Shmoo

    Nee dat regelen ze waarschijnlijk met .htaccess

    Ze voorkomen dat hun afbeeldingen op andere domeinen gebruikt worden. Normaal toon je dan een error afb. dat insluiten nog mag.

    Probeer maar eens een afb. van die site op OMT te plaatsen dan moet je hem ook eerst downloaden en dan weer uploaden.

    Bijdrager
    verwijderd-profiel

    Oh, dat is wel jammer. Kan PHP de afbeelding wel downloaden naar de server of ziet IMDb dat ook als gebruiken op een ander domein? Want handmatig downloaden kan wel, maar dat is niet m’n bedoeling.

    Bijdrager
    Shmoo
    Dr. op 01 december 2013

    PS: < en > zijn vervangen door [ en ] in deze post

    Nee das ook niet waar;)

    < en > zijn HTML tags die je in WordPress en bbPress hoort te gebruiken.

    [ en ] horen bij iets dan BBcode heet wat vroeger veel gebruikt werd als insluit code.

    Bijdrager
    Shmoo

    Zet JavaScript maar eens uit in je browser, dan kun je wel rechtermuis-klikken en de foto gewoon downloaden;)

    Bijdrager
    verwijderd-profiel
    Shmoo op 01 december 2013
    Dr. op 01 december 2013

    PS: < en > zijn vervangen door [ en ] in deze post

    Nee das ook niet waar;)

    < en > zijn HTML tags die je in WordPress en bbPress hoort te gebruiken.

    [ en ] horen bij iets dan BBcode heet wat vroeger veel gebruikt werd als insluit code.

    Ik had img src neergezet met > <, dan probeerde hij de afbeelding te laten zien. Ik heb het vervangen door [ en ], dan verdwijnt het…

    Bijdrager
    verwijderd-profiel

    Het handmatig downloaden lukt ook als JS niet uit staat.;) Kan PHP dat ook?

    Bijdrager
    Shmoo

    Ja het werkt hier allemaal int zo goed, krijg je als je oude codes overbrengt naar nieuwe systemen.

    Maar wel weet ik dat IMDb hun afbeeldingen niet laat insluiten op andere domeinen , je zult dus een manier moeten verzinnen om ze te grijpen en op een eigen server of zoiets plaatsen.

    Maar miss. zijn er nog andere websites die dat wel toelaten en die dezelfde covers tonen

    Bijdrager
    verwijderd-profiel

    Ik zal eens proberen of het lukt.

    De oplossing komt hier te staan.

    Ik was al blij toen ik een link naar een IMDb afbeelding zag. Toen ik nog films in iTunes had kon ik met geen mogelijkheid een cover van IMDb halen. (Ja, een screenshot, maar dat is teveel werk.)

    Bijdrager
    verwijderd-profiel

    Na heel veel gedoe met rechten etc. is het dan toch eindelijk gelukt.

    Ik download nu de afbeelding van IMDb naar de server toe. De locatie van de afbeelding wordt opgeslagen in de DB.

     
    $movieID = $_POST["ID"]; // ik heb het met een formulier gedaan, daarom dus de POST -- movieID moet tt9393829 zijn, wat in de IMDb link staat dus
    $url = "http://mymovieapi.com/?id=" . $movieID . "&type=xml";
    $xmlstr = file_get_contents($url);
    $xmlcont = new SimpleXMLElement($xmlstr);
     

    Met dit stukje krijg je een XML met allemaal informatie over een film. (Bijvoorbeeld: http://mymovieapi.com/?id=tt1951264&type=xml )

     
    $image1 = $xmlcont -> poster -> imdb;
    $image2 = $xml -> poster -> cover;
     

    Er zijn 2 manieren (misschien wel meer, ik ben er maar 2 tegengekomen) waarop deze API de afbeeldingen geeft.
    1. poster -> imdb
    2. poster -> cover

    (In beide gevallen is het resultaat hetzelfde)

    In het voorbeeld zijn beiden gebruikt.

     
    if(isset($image1)) {
    	downloadImage($image1, $movieID);
    	$image = TRUE;
    }
    else if(isset($image2)) {
    	downloadImage($image2, $movieID);
    	$image = TRUE;
    }
    else {
    	$image = FALSE;
    }
     

    Hiermee haal ik er 1 uit.
    $image gebruik ik om de gebruiker te laten waten of de afbeelding beschikbaar is.

    De functie downloadImage() die ik hierboven heb gebruikt is als volgt: (deze download de afbeelding en slaat hem op in /img/cover/tt1234567.jpg)

     
    function downloadImage($url, $ID) {
    	copy("$url", "./img/cover/" . $ID . ".jpg");
    }
     
10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.