Parse headers from a specific URL content.
public static getHeaderFromUrl ( string $url ) : mixed | ||
$url | string | |
Результат | mixed | array of headers or FALSE on failure |
/** * Checks if a url is valid * * @param string $url * @return bool Success */ protected function _validUrl($url) { $headers = Utility::getHeaderFromUrl($url); if ($headers === false) { return false; } $headers = implode("\n", $headers); $protocol = mb_strpos($url, 'https://') === 0 ? 'HTTP' : 'HTTP'; if (!preg_match('#^' . $protocol . '/.*?\\s+[(200|301|302)]+\\s#i', $headers)) { return false; } if (preg_match('#^' . $protocol . '/.*?\\s+[(404|999)]+\\s#i', $headers)) { return false; } return true; }
/** * UtilityTest::testGetHeaderFromUrl() * * @covers ::getHeaderFromUrl * @return void */ public function testGetHeaderFromUrl() { $res = Utility::getHeaderFromUrl('http://www.spiegel.de'); $this->assertTrue(is_array($res) && count($res) > 1); //$this->assertEquals('HTTP/1.0 200 OK', $res[0]); }