0

我有一个通过 Android IP Camera App 的网络摄像头。我正在编写一个 php 脚本,在温度传感器上执行 OCR 以读取数字并在超过特定温度时警告我。我希望通过摄像头 IP 获取的 URL 是 shot.jpg,但是网络摄像头有一个用户名和授权密码:基本。我能够使用第一种方法通过身份验证,但它只是输出大量随机字符。第二种方法加载图片,但是src不正确。关于如何使用内容类型正确格式化第一种方法的任何建议都会令人惊叹。谢谢

//METHOD 1
    $context = stream_context_create(array(
    'http' => array('header'  => "Authorization: Basic " . base64_encode("$username:$password"))
));
$data = file_get_contents($url, false, $context);
echo $data;


//METHOD NUMBER 2
header('Authorization: Basic' . base64_encode("$username:$password"));
header('Content-Type: image/jpg');
$data = file_get_contents($url, false);
echo $data;
4

1 回答 1

2

您没有Content-Type:在示例 1中输出正确的内容。file_get_contents没有传递它。因此,图像将在假设它是 HTML 页面的情况下被发送到浏览器。

这边走:

$data = file_get_contents($url, false, $context);
header('Content-Type: image/jpg');    
echo $data;

此外,尝试curl(也支持 HTTP),以简化登录凭据的使用。

在您的第二个示例中,您使用的是页面响应header()。该Authorization:行将不会通过那里的 file_get_contents() URL 请求传递。

于 2013-02-21T03:59:31.427 回答