RewriteRule a <img src=...> 或其他解决方案
Posted
技术标签:
【中文标题】RewriteRule a <img src=...> 或其他解决方案【英文标题】:RewriteRule a <img src=...> or other solution 【发布时间】:2013-11-09 20:21:54 【问题描述】:我希望我的网络摄像机在我的网站上流式传输。 由于我有这段代码,但是如果您查看源代码,您当然会看到完整的数据作为user and pass。这不是本意,我查看了 .htaccess 中的 RewriteRule 选项,但不知道如何制定,或者可能是另一种保护我的用户和传递数据的解决方案。谁能帮我走出思考圈,朝着正确的方向(或示例)迈出一步。
<?php
$url = '123.456.7.890:1234';
$user = 'naam';
$pass = 'wachtwoord';
$cam = "http://$url/videostream.cgi?user=$user&pwd=$pass";
?>
<html>
<body>
...
<img name="main" id="main" border="0" src="<?php echo("$cam"); ?>">
...
</body>
</html>
【问题讨论】:
【参考方案1】:如果相机以图像响应您,您可以在 PHP 代码中获取它,然后将其添加到图像 src,如 base64 数据。
例如
<?php
$url = '123.456.7.890:1234';
$user = 'naam';
$pass = 'wachtwoord';
$cam = "http://$url/videostream.cgi?user=$user&pwd=$pass";
$image = file_get_contents($cam); // Or use CURL
// Here you need to replace $type of your camera
$image_src = 'data:image/' . $type . ';base64,' . base64_encode($image);
?>
<html>
<body>
...
<img name="main" id="main" border="0"
src="<?php echo $image_src ?>">
...
</body>
</html>
【讨论】:
“更换相机的 $type”是什么意思? Its about variable
$type. If your camera outputs jpeg image from that url - you need to set up a
$type = 'jpeg';` 每一个想法都会奏效。在数据后的 src attr 中连接后,我们将看到 base64 中的 mime 类型的图像。
我尝试了您的解决方案,但我们谈论的是视频流而不是图像。该脚本没有显示任何内容...【参考方案2】:
您应该使用服务器端来创建图像。 可以在这里找到解决方案:Create Image From Url Any File Type
您可以创建一个输出图像或其他内容的 PHP 文件。
如果你这样做,你可以像这样加载图像:<img src="http://domain.com/image.php?id=1">
然后在 image.php 中,您可以从您的数据库中加载,或者您喜欢的任何内容。 但是,当您拥有真实的图像信息时,您可以按照上面链接中的说明制作“假”图像。
【讨论】:
以上是关于RewriteRule a <img src=...> 或其他解决方案的主要内容,如果未能解决你的问题,请参考以下文章