controleren of afbeelding op externe server bestaat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

M h

m h

11/02/2012 17:39:47
Quote Anchor link
Beste leden,

Ik zit met een probleempje: een externe afbeelding moet op de eigen server opgeslagen worden. Nu lukt dat prima, maar als er een afbeelding geladen moet worden van een url die niet bestaat komt er een foutmelding.
IK heb dit geprobeerd op te lossen:

if(is_file($url_externe_afbeelding)){
//afbeelding inladen
}

en ook geprobeerd met:

if(file_exists($url_externe_afbeelding)){
//afbeelding inladen
}

maar beiden werken niet. Via Internet kom ik er ook niet uit hoe het wel zou moeten. Iemand die me hiermee helpen kan?

Bedankt!
 
PHP hulp

PHP hulp

23/11/2024 20:04:07
 
Bram w

bram w

11/02/2012 17:52:53
Quote Anchor link
Dit zal je denk ik wel verder helpen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
    function url_validate( $link )
    {
        
        $url_parts = @parse_url( $link );

        if ( empty( $url_parts["host"] ) ) return( false );

        if ( !empty( $url_parts["path"] ) )
        {

            $documentpath = $url_parts["path"];
        }

        else
        {
            $documentpath = "/";
        }


        if ( !empty( $url_parts["query"] ) )
        {

            $documentpath .= "?" . $url_parts["query"];
        }


        $host = $url_parts["host"];
        $port = $url_parts["port"];
        // Now (HTTP-)GET $documentpath at $host";

        if (empty( $port ) ) $port = "80";
        $socket = @fsockopen( $host, $port, $errno, $errstr, 30 );
        if (!$socket)
        {

            return(false);
        }

        else
        {
            fwrite ($socket, "HEAD ".$documentpath." HTTP/1.0\r\nHost: $host\r\n\r\n");
            $http_response = fgets( $socket, 22 );
            
            if ( ereg("200 OK", $http_response, $regs ) )
            {

                return(true);
                fclose( $socket );
            }
else
            {
//                echo "HTTP-Response: $http_response<br>";
                return(false);
            }
        }
    }
?>
bron
Gewijzigd op 11/02/2012 17:53:12 door bram w
 
M h

m h

11/02/2012 17:56:22
Quote Anchor link
Oke, bedankt;) Er is dus voor externe links geen simpele 'BESTAAT_BESTAND(bestandsnaam)' of iets dergelijks?
 
Bram w

bram w

11/02/2012 17:58:27
Quote Anchor link
Even simpel gezegd, nee. Je zal altijd moeten controleren of een bestand bestaat door een (http) request erheen te sturen en dan te kijken wat de status header is.
 
M h

m h

11/02/2012 18:03:43
Quote Anchor link
Oke, dank! Ik ga het integreren
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.