无论HTTP状态码是什么,我如何获取页面内容?

问题描述:

我目前使用file_get_contents()来获取页面的内容,这有点像一个认证API。它适用于大多数人使用的默认系统(它只使用默认的HTTP/1.1 200状态码),但有些人发送相关的HTTP状态码以用于不同的错误。例如401 PASSWORD_FAIL,在这种情况下,它会将HTTP状态设置为401并向页面输出“PASSWORD_FAIL”,这是我想要获得的部分。但401状态代码导致file_get_contents()错误,不做任何事情。什么是最简单的PHP函数我可以用来获取页面的内容,并忽略HTTP状态代码?无论HTTP状态码是什么,我如何获取页面内容?

$opts = array('http' => 
    array(
     'ignore_errors' => true, 
    ) 
); 

$context = stream_context_create($opts); 
$result = file_get_contents($url, false, $context); 

请参阅http wrapper context options手册。

您可以使用函数stribet。

function stribet($inputstr, $deliLeft, $deliRight) { 
    $posLeft = stripos($inputstr, $deliLeft) + strlen($deliLeft); 
    $posRight = stripos($inputstr, $deliRight, $posLeft); 
    return substr($inputstr, $posLeft, $posRight - $posLeft); 
} 

$ res = file_get_contents(“web page”); $ test = @ $ this-> stribet($ res,'<html>','</html>');

更多信息检查PHP.Net stripos