Zitat:
Zitat von kami Hi,
ist eigentlich ne simple Sache aber ich stelle mich gerade echt zu blöd dafür an.
Ich habe ein PHP-Skript was mir einen Webcam-Stream von einer Seite liest. (MJPG-Streamer).
Diesen Stream sehe ich, wenn ich das PHP-Skript öffne.
Die Datei sieht so aus: PHP-Code: <?
set_time_limit(0);
$fp = fsockopen("localhost", 5000, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br>\n";
} else {
$urlstring = "GET /?action=stream HTTP/1.0\r\n\r\n";
fputs ($fp, $urlstring);
while ($str = trim(fgets($fp, 4096)))
header($str);
fpassthru($fp);
fclose($fp);
}
?> nun möchte ich gerne diesen Output in einen vorhandene Website integrieren, damit ich zum Beispiel sagen kann wie groß das Bild angezeigt werden soll.
Wie mache ich das? |
GetImageSize() kann dir sagen, wie die Abmessungen der Grafik sind. Wenn du die Grafik lokal zwischenspeichern möchtest, dann musst du halt, statt sie mit fpasshthru() direkt auszugeben, in eine lokale Datei kopieren. Die Datei verlinkst du in deiner HTML-Ausgabe.
Kopieren geht bei kleinen Dateien mit
PHP-Code:
file_put_contents($ziel, file_get_contents($quelle), ...)
Bei größeren Dateien arbeitest du in einer Schleife mit fread() und fwrite():
PHP-Code:
$src = fopen('http://localhost:5000/?action=stream', 'rb', FALSE, $context);
// ...
$dst = fopen($local_uri, 'wb');
while (
is_string($buffer = fread($src, $buffer_size)) &&
fwrite($dst, $buffer) === strlen($buffer)
) {
}