hey iedereen,

Op het moment ben ik bezig met het maken van een script die in een map alle video's opzoekt en die weergeeft
alleen op het moment geeft hij weer dat er een video is wat klopt, ik kan de speler zien, alleen wilt hij hem niet afspelen...

dit is mijn code:

<?php

$a = '1'; //aantal videos op 1 pagina
$locatie = 'video'; //map van videos
$width = '500'; //breedte van de video
$height = '500'; //hoogte van de video


//hieronder hoeft niks veranderd te worden
if (!isset($_GET['pagina'])) { $pagina = 1; } else { $pagina = $_GET['pagina']; }
$dir = opendir($locatie);
$nr = '1';
// Haal de gegevens uit dir
while (false !== ($file = readdir($dir))) {
if (($file !== ".") and ($file !== "..")) {
list($filename, $ext) = explode(".", $file);
list($main, $sub, $include) = explode("/", $PHP_SELF);
$files[$nr] = $file;
$nr++;
}
}
$a0 = count($files);

$a1 = ($a0/$a);
$a2 = round($a1);
if ($a1 > $a2) {
$a2++;
}
$i = '1';
while ($i != ($a2 + 1)) {
if ($pagina == $i) {
$j = (($a * $i)-$a);
$vid = ($j + 1);
while ($j != ($a * $i)) {
if ($vid > $a0) {
$j = ($a * $i);
}
else {
echo "<embed src=\"$locatie/$files[$vid]\" height=\"$height\" width=\"$width\" autostart='false' />";
$vid++;
$j++;
}
}
//pagina nummers met links
$l = '1';
echo "<br><br>";
while ($l != ($a2 + 1)){
if ($l == $pagina){
echo "<b>[$l]</b> ";
}
else {
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l\">[$l]</a> ";
}
$l++;

}

}
$i++;
}

?>
We gaan die code straks eens serieus inkorten.

Om te beginnen, glob() is veel gebruiksvriendelijker dan opendir ...
zie.
http://php.net/manual/en/function.glob.php

Daarmee wordt dat
<?php
$videos = glob($locatie .'/*.*');
// en dan nog filteren met de extensie.
?>

Jouw manier om aan een extensie te raken, klopt trouwens niet.
pathinfo is daarvoor veel beter, zie http://php.net/manual/en/function.pathinfo.php

bv. bij jou krijg je een probleem als iemand 'mijn_video.avi.exe' uploadt. Jij detecteert dan enkel avi; niet exe.

---
Nog een detail:
Je doet een aantal keer iets dergelijks:
<?php
$i = '1';
while ($i != ($a2 + 1)) {
...
$i++;
}
?>

Daarvoor hebben ze de for-lus uitgevonden.
Dat wordt
<?php
for ($i = 1; $i != ($a2 + 1); $i++) {
...
}
?>


... dan kunnen we zien naar het probleem ten gronde.
Die for loop is inderdaad heel slordig :x

ik ben nu maar even opnieuw begonnen en heb nu

<?php

$a = '1'; //aantal videos op 1 pagina
$locatie = 'video'; //map van videos
$width = '500'; //breedte van de video
$height = '500'; //hoogte van de video

$videos = glob($locatie .'/*.*');
$c = count($videos);
for($i=1; $i <= $c; $i++)
{
$path_parts = pathinfo($videos[$i]);
echo "<embed src=";
echo $path_parts['dirname'];
echo "/";
echo $path_parts['filename'];
echo ".";
echo $path_parts['extension'];
echo " height=\"$height\" width=\"$width\" autostart='false' />";
}

?>

echter krijg in nu een pagina met daarin een frame waarin ik de homepage van de site te zien krijg...

help :S
Je doet nu veel moeite om eerst dirname, filename en extension uit te lezen, om ze vervolgens weer aan elkaar te knopen. Dat is helemaal niet nodig. Verder heb je die count ook niet nodig, want je kunt glob gewoon meteen in je foreach zetten:

<?php
	foreach ( glob ('testvideos/*.wmv') as $video ) {
		echo '<p>' . $video . '</p>';
	}
?>
ik heb de foreach functie letterlijk overgenomen en heb nu dit aangezien ik met mp4:

<?php
foreach ( glob ('video/*.mp4') as $video ) {
echo ' <video width="320" height="240" controls>
<source src=' . $video . ' type="video/mp4">
Your browser does not support the video tag.
</video>';
}
?>

echter kan ik de video nog steeds niet afspelen.... ik zie nu de controls en als er geen .mp4 bestand in staat dan krijg ik een foutmelding maar afspelen lukt niet...
Hoe ziet je HTML er uit volgens je browser?
dit is de code voor de hele pagina:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html>
<head>
<title>Carsten PT</title>
<link href="/include/style.css" rel="stylesheet" type="text/css">
</head>
<body style=" text-align:center;">
<div id="header">
<a href="/index.php?p=home"><center><img src="/images/carsten oort site.png" alt="Carsten pt" border="0" /></center></a>
<center>
<a href="/index.php?p=home">
<img src="/images/home.png" alt="Home" width="135" height="100" onmouseover="this.src='/images/home2.png';" onmouseout="this.src='/images/home.png';" border="0" />
</a>

<a href="/index.php?p=personalTraining">
<img src="/images/pt.png" alt="Personal training" width="135" height="100" onmouseover="this.src='/images/pt2.png';" onmouseout="this.src='/images/pt.png';" border="0" />
</a>

<a href="/index.php?p=aanbod">
<img src="/images/aanbod.png" alt="Ons aanbod" width="135" height="100" onmouseover="this.src='/images/aanbod2.png';" onmouseout="this.src='/images/aanbod.png';" border="0" />
</a>

<a href="/index.php?p=voeding">
<img src="/images/voeding.png" alt="Voeding" width="135" height="100" onmouseover="this.src='/images/voeding2.png';" onmouseout="this.src='/images/voeding.png';" border="0" />
</a>

<a href="/index.php?p=massage">
<img src="/images/massage.png" alt="Massage" width="135" height="100" onmouseover="this.src='/images/massage2.png';" onmouseout="this.src='/images/massage.png';" border="0" />
</a>

<a href="/index.php?p=contact">
<img src="/images/contact.png" alt="Contact" width="135" height="100" onmouseover="this.src='/images/contact2.png';" onmouseout="this.src='/images/contact.png';" border="0" />
</a>

<a href="/index.php?p=review">
<img src="/images/review.png" alt="Review" width="135" height="100" onmouseover="this.src='/images/review2.png';" onmouseout="this.src='/images/review.png';" border="0" />
</a>
</center>
</div>
<div id="contain">
<div id="lbanner">
<img src="/images/banner/L1.jpg" height="600" width="150" border="0" />
</div>

<div id="page">
<div id="left" class="c"><a href="/index.php?p=review">&nbsp;&nbsp;Review's&nbsp;&nbsp;</a></div>
<div id="cent" class="c"><a href="http://carstenoort-pt.com/content/pic.php?nr=1">&nbsp;&nbsp;Foto's&nbsp;&nbsp;</a></div>
<div id="right" class="c"><div class="sel"><a href="http://carstenoort-pt.com/content/video.php?nr=1">&nbsp;&nbsp;Video's&nbsp;&nbsp;</a></div></div>
<br />
<div id="gen">
<?php
foreach ( glob ('video/*.mp4') as $video ) {
echo ' <video width="400" height="400" controls>
<source src=' . $video . ' type="video/mp4">
Your browser does not support the video tag.
</video>';
}
?>
</div>
</div>

<div id="rbanner">
<a href="http://www.pedssportscentre.nl">;
<img src="/images/banner/1.gif" height="100" width="150" border="0" />
</a>
<a href="http://www.tapout.com/">;
<img src="/images/banner/2.jpg" height="100" width="150" border="0" />
</a>
<a href="http://www.trxtraining.com/shop/gear">;
<img src="/images/banner/3.jpg" height="100" width="150" border="0" />
</a>
<a href="http://www.cyvan.woelmuis.nl">;
<img src="/images/banner/4.png" height="100" width="150" border="0" />
</a>
<a href="http://bassaidaidojo.nl/">
<img src="/images/banner/5.jpg" height="100" width="150" border="0" />
</a>
</div>
</div>
</body>
</html>

voor de rest toont elke browser alles gewoon goed werkend, alleen dat filmpje wilt hij niet afspelen....
Maar hoe ziet het er in je browser uit?
Die PHP-code zou er daar nooit mogen staan als je de HTML-source bekijkt.

<source src=video/Queen - The Show Must Go On.mp4 type="video/mp4">


moet worden:


<source src="video/Queen - The Show Must Go On.mp4" type="video/mp4">


zoek de verschillen :-)
inderdaad zoek de verschillen xD maar je hebt gelijk was een hele stomme fout :x

iedereen heel erg bedankt!!

met vriendelijke groet,

Cyvan Oort

Reageren