title: Catching Failed HTTP Request in PHP
body: <p>So, I'm having a little bit of trouble in PHP with a file_get_contents...</p>
  
  <p>I'm using <a href="https://stackoverflow.com/a/10235240/1286857">this code</a>.</p>
  
  <p>Before, if I ran it with a hash that it could not find (bdfccf20b1db88d835c27685ac39f874), it would return this:</p>
  
  <pre><code>fcf1eed8596699624167416a1e7e122e - found: octopus (Google)
  bed128365216c019988915ed3add75fb - found: passw0rd (Google)
  d0763edaa9d9bd2a9516280e9044d885 - found: monkey (Google)
  dfd8c10c1b9b58c8bf102225ae3be9eb - found: 12081977 (Google)
  ede6b50e7b5826fe48fc1f0fe772c48f - found: 1q2w3e4r5t6y (Google)
  bdfccf20b1db88d835c27685ac39f874
  Warning: file_get_contents(http://md5.gromweb.com/query/bdfccf20b1db88d835c27685ac39f874): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
  
   in /Users/mihir/MD5Decryptor.php on line 44
  
  Catchable fatal error: Argument 2 passed to MD5Decryptor::dictionaryAttack() must be an array, boolean given, called in /Users/mihir/MD5Decryptor.php on line 56 and defined in /Users/mihir/MD5Decryptor.php on line 25
  </code></pre>
  
  <p>To stop the warning, I changed </p>
  
  <pre><code>if ($response = file_get_contents($url)) {
  </code></pre>
  
  <p>on line 43 to </p>
  
  <pre><code>$response = @file_get_contents($url);
  if ($response) {
  </code></pre>
  
  <p>and the output becomes</p>
  
  <pre><code>fcf1eed8596699624167416a1e7e122e - found: octopus (Google)
  bed128365216c019988915ed3add75fb - found: passw0rd (Google)
  d0763edaa9d9bd2a9516280e9044d885 - found: monkey (Google)
  dfd8c10c1b9b58c8bf102225ae3be9eb - found: 12081977 (Google)
  ede6b50e7b5826fe48fc1f0fe772c48f - found: 1q2w3e4r5t6y (Google)
  bdfccf20b1db88d835c27685ac39f874
  Catchable fatal error: Argument 2 passed to MD5Decryptor::dictionaryAttack() must be an array, boolean given, called in /Users/mihir/MD5Decryptor.php on line 56 and defined in /Users/mihir/MD5Decryptor.php on line 25
  </code></pre>
  
  <p>How can I catch the error? As in, if the hash is not found, how could I modify the script to return "Hash Not Found" and not completely crash?</p>
  
  <p>Thanks in advance...</p>