Jump to content


Photo

php_network_getaddresses: getaddrinfo failed


  • Please log in to reply
3 replies to this topic

#1 KapaGino

KapaGino

    Newbie

  • New Members
  • Pip
  • 7 posts

Posted 25 September 2013 - 02:09 PM

Hi there,

 

I've hit a bit of a roadblock on something I've been working on, was wondering if anyone knew of a way to fix the error message:

 

imagecreatefromjpeg():php_network_getaddresses: getaddrinfo failed

 

The code I'm using is below, the script basically grabs a certain image from a set of specific urls and resizes it as close to 600x450 as it can, then saves the image/images in a zip file which the user can then download.

 

I should also mention that I'm currently hosting this on x10hosting, and it runs a-okay locally.

<?php

include 'zip.php';

function getImage($tags){
$count = 0;

    foreach ($tags as $tag){
        $tag->getAttribute('src');
        $count += 1;

        if ($count == 3){
            $old_image = $tag->getAttribute('src');
            return $old_image;
        }
    }
}

function deleteFiles($random_name){
    $images= scandir("$random_name"); //get an array of files
    unset($images[0], $images[1]);
    
    // loop through files
    foreach($images as $image){
        unlink("$random_name/$image"); // delete each file
    }

    rmdir($random_name);
}

$omitted_urls = [];


if (isset($_POST['submit'])){
    $start_time = time();

    $urls = $_POST['urls']; // take inputted urls
    $urls = explode("\r\n", $urls); // break them up by a carriage return/new line into array

    $names = $_POST['names']; // take inputted names
    $names = explode("\r\n", $names); // break them up by a carriage return/new line into array

    $random_name = "pics".rand(0,1000); // create a random folder name
    if (!is_dir("$random_name")){
        mkdir("$random_name", 0777);
    }

    // for each url
    for($i=0; $i < count($urls); $i++){


        @$html = file_get_contents($urls[$i]); // get the contents of the url

        $doc = new DOMDocument();
        @$doc->loadHTML($html); // load up the html file
        $tags = $doc->getElementsByTagName('img'); // look for all img tags
        $count = 0;

        $special_chars = array('\\','/',':','*','?','"','<','>','|'); // look for any special characters

        $names[$i] = str_replace($special_chars, "", $names[$i]); // replace them with ""
        $names[$i] = substr($names[$i], 0, 50); // truncate anything over 50 characters

        if($old_image = imagecreatefromjpeg(getImage($tags))){ // create the old image

            echo "The src is ".getImage($tags)."<br>";

            $old_width = imagesx($old_image);  // get the width of the old image
            $old_height = imagesy($old_image); // get the height of the old image

            $ratio_orig = $old_width/$old_height; // work out the ratio of the image

            $new_width = 600; $new_height = 450;

            if ($new_width/$new_height > $ratio_orig){
                $new_width = $new_height*$ratio_orig;
            } else {
                $new_height = $new_width/$ratio_orig;
            }

            $new_image = imagecreatetruecolor($new_width, $new_height); // creates a black image to represent size
            imagecopyresampled($new_image, $old_image, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height); // copy over old image to fit new image

            imagejpeg($new_image, "$random_name/".$names[$i].'.jpg'); // create the new image file
            imagedestroy($new_image); // destroy the image file
            $time = time()- 3600; // find out the time

            } else {
                $omitted_urls[] = $names[$i];
            }

        }

    $final_time =  time() - $start_time; // final time is the current time take the starting time
    $final_time = date("i:s", $final_time); // time taken
}

?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>EGI Research - Resize and Extract Images</title>
        <link href="/RESEARCH/favicon.ico" rel="shortcut icon" type="image/x-icon" />
        <meta name="viewport" content="width=device-width" />
        <link href="css/style.css" rel="stylesheet"/>

        <script src="/RESEARCH/bundles/modernizr?v=rGcoDow97GYrNMSwHq7xCCjlcB3UIY4_OhPRc6BBSQA1"></script>

    </head>
    <body>
        <header>
            <body>
        <header>
            <div class="content-wrapper">
            </div>
        </header>
        </header>
        <div id="body">
            
    <section class="featured">
        <div class="content-wrapper">
            <hgroup class="title">
                <h1>URL Image Extractor & Resizer</h1>
            </hgroup>

            <?php if(isset($_POST['submit'])){
            printf("<br><b> %s images were downloaded and resized in %s seconds </b><br><br>", count(scandir($random_name))-2, $final_time);

            if (count($omitted_urls) > 0){
                foreach($omitted_urls as $omitted_url){
                    echo "$omitted_url was omitted<br>";
                }
            }

            createZip($random_name);
            deleteFiles($random_name);
            echo "<a href='$random_name.zip'>Click here to download images</a>";
            }?>
       
        </div>
    </section>

            <section class="content-wrapper main-content clear-fix">
                

<form action="" id="UploadForm" method="post"><div class="validation-summary-valid" data-valmsg-summary="true"><ul><li style="display:none"></li

</ul></div>    <ol class="round">
        <li class="one">
            <h5>URLS</h5>
            <p>Enter a set of EGi URLS</p>
            <textarea name="urls" rows="4"></textarea>
        </li>
        <li class="two">
            <h5>File Names</h5>
            <p>
            Enter a set of unique identifiable File Names
            </p>
            <textarea name="names" rows="4"></textarea>
            <br>
            <input type="submit" value="Extract & Resize" name="submit"/><a href="index2.php">Clear Form</a>
        </li>
    </ol>
</form>

            </section>
        </div>
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>&copy; 2013 - Reed Business Information Ltd.</p>
                </div>
            </div>
        </footer>

        
    </body>
</html>

Thanks for any of your know how.


Edited by KapaGino, 25 September 2013 - 02:13 PM.


#2 requinix

requinix

    Playful Member

  • Moderators
  • 5,749 posts
  • LocationWA

Posted 25 September 2013 - 03:15 PM

What is the URL (the actual value) that you're passing to imagecreatefromjpeg()?

#3 KapaGino

KapaGino

    Newbie

  • New Members
  • Pip
  • 7 posts

Posted 26 September 2013 - 03:21 AM

The urls themselves would look like this:

http://www.estatesgazette.com/propertylink/advert/blackfriars_road_london-london-3475714.htm

http://www.estatesgazette.com/propertylink/advert/borough_high_street_london-london-3476800.htm

Edited by KapaGino, 26 September 2013 - 03:24 AM.


#4 mac_gyver

mac_gyver

    Advanced Member

  • Moderators
  • 1,909 posts

Posted 26 September 2013 - 01:44 PM

1) the @ error suppressors you have in your code are probably hiding related errors, that the web host doesn't permit reading external urls. you need to remove all the @ error suppressors and have php's error_reporting set to E_ALL so that you know everything that is not working in the code.

 

2) have you echoed what getImage($tags) does return so that you know it is an actual complete expected value?


multi-purpose programming fool and resident naysayer [We try not be negative in replies, but telling someone what they're doing wrong, while staying politically correct, isn't always going to happen.]




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Cheap Linux VPS from $5
SSD Storage, 30 day Guarantee
1 TB of BW, 100% Network Uptime

AlphaBit.com