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 文件。 如果你这样做,你可以像这样加载图像:&lt;img src="http://domain.com/image.php?id=1"&gt;

然后在 image.php 中,您可以从您的数据库中加载,或者您喜欢的任何内容。 但是,当您拥有真实的图像信息时,您可以按照上面链接中的说明制作“假”图像。

【讨论】:

以上是关于RewriteRule a <img src=...> 或其他解决方案的主要内容,如果未能解决你的问题,请参考以下文章

js如何实现a标签获取下面img的src

php怎么获取图片的src

javascript怎么动态更改img标签的src属性?

使用 BeautifulSoup 从 img 标签中提取 src 属性

在 CSS 中定义 <img> 的 src 属性 [重复]

使用 ngSwitch 专门更改 img [src]