stclem Skrevet 29. januar 2009 Skrevet 29. januar 2009 Har et lite script som lar meg liste alle flv filer i en mappe, men ønsker at den lister motsatt vei. Altså Å-A eller 9-0. Noen som kan hjelpe? <?php $dh = opendir($dirvideo); while ($file = readdir($dh)) { if (eregi("\.flv",$file)) { # Look at only files with a .flv extension $string .= "<a href=\"$PHP_SELF?video=$file\">$file</a><br />"; $fileCount++; } } if ($fileCount > 0) { echo sprintf("<strong>Videoer:</strong><br />%s<strong>Totalt: %s</strong>",$string,$fileCount); } closedir($dh); ?>
alfred97 Skrevet 29. januar 2009 Skrevet 29. januar 2009 (endret) readdir() gir ingen muligheter for å spesifisere sorteringskriterier, så hvis det er absolutt nødvendig, så må du nok gjøre det selv. Jeg tror jeg ville ha dyttet filnavnene inn i et array, for så å sortere det til slutt. Noe i denne gata: $files = array(); while ($file = readdir($dh)) { $files[] = $file } sort ($files); for ($i = count($files) - 1; $i >= 0; $i--) doStuff ($files[$i]); Endret 29. januar 2009 av alfred97
stclem Skrevet 29. januar 2009 Forfatter Skrevet 29. januar 2009 takk for hjelp, men skjønner ikke helt hvordan jeg skal bruke koden din.
alfred97 Skrevet 29. januar 2009 Skrevet 29. januar 2009 rsort() ikke sort() Den kan man også bruke, men da må man snu tellesekvensen i for-løkka slik at den teller forover i stedet for bakover. @stclem: Poenget var ikke at du skulle bruke koden min. Den er bare ment som et kjapt eksempel. Det du skal gjøre, er å lese inn filnavnene dine på samme måte som ellers, men i stedet for å prosessere dem med en gang, skal du dytte dem inn i et array. Når du så er ferdig med det, sorterer du arrayet enten forlengs med sort() eller baklengs med rsort(). Nå har du alle filnavnene liggende i arrayet, sortert i riktig rekkefølge, så nå kan du hente dem derfra og skrive dem ut på den måten det passer deg.
stclem Skrevet 29. januar 2009 Forfatter Skrevet 29. januar 2009 hmmm.. tror du overvurderer mine ferdigheter. Dette klarer jeg ikke selv.
Martin A. Skrevet 29. januar 2009 Skrevet 29. januar 2009 <?php $files = scandir( $dirvideo ); $string = ""; $fileCount = 0; sort( $files ); // rsort( $files ); foreach( $files as $file ) { if( substr( $file, -3 ) == 'flv' ) { $string .= "<a href=\"{$_SERVER['PHP_SELF']}?video=$file\">$file</a><br />"; $fileCount++; } } if ($fileCount > 0) { echo sprintf( "<strong>Videoer:</strong><br />%s<strong>Totalt: %s</strong>", $string, $fileCount ); } ?> Ene funsksjonen der (scandir) krever PHP5, men det regner jeg nesten med at du har.
stclem Skrevet 29. januar 2009 Forfatter Skrevet 29. januar 2009 Takk, funker den. Et lite ekstraspm. Kan jeg få dette inn i en drop down boks?
itsmebth Skrevet 30. januar 2009 Skrevet 30. januar 2009 glob('*.flv') er vel bedre til dette formålet.
AlecTBM Skrevet 30. januar 2009 Skrevet 30. januar 2009 Bare å bytte ut echo sprintf( "<strong>Videoer:</strong><br />%s<strong>Totalt: %s</strong>", $string, $fileCount ); med annen html kode det
stclem Skrevet 30. januar 2009 Forfatter Skrevet 30. januar 2009 litt mulig jeg er på bærtur her, men så langt har jeg kommet. echo sprintf( "<strong>Videoer:</strong><strong>Totalt: %s</strong>", $fileCount ); ?> <form name="myform" action="<?php echo "$PHP_SELF?video=$file" ?>" method="POST"> <div align="center"> <select name="mydropdown"> <?php echo "$string" ?> </select> <input type="hidden" name="submit_form" value="1" /> <input type="submit" value="Post" /></form>
Martin A. Skrevet 30. januar 2009 Skrevet 30. januar 2009 Ganske på bærtur, faktisk <?php $files = scandir( $dirvideo ); $fileCount = 0; $string = "<form action='' method='get' name='form'>\n\r\t<select name='video' onchange='this.form.submit();'>\n\r"; sort( $files ); // rsort( $files ); foreach( $files as $file ) { if( substr( $file, -3 ) == 'flv' ) { $string .= "\t\t<option value='{$file}'>{$file}</option>\n\r"; $fileCount++; } } $string .= "\t</select>\n\r</form>"; if ($fileCount > 0) { echo sprintf( "<strong>Videoer:</strong><br />%s<strong>Totalt: %s</strong>", $string, $fileCount ); } ?>
stclem Skrevet 30. januar 2009 Forfatter Skrevet 30. januar 2009 (endret) Den funker ja. Men når jeg har valgt ett av valgene så går den til rett side, men drop down menyen viser øverste valg igjen. Går det å få den til å vise det valget som er nå feks via get id, eller at den viser teksten "velg video". Fikk til å legge til velg video, så funker greit nå. Takk for all hjelp. $string = "<form action='' method='get' name='form'>\n\r\t<select name='video' onchange='this.form.submit();'><OPTION SELECTED VALUE=\"\">Velg video</OPTION>\n\r"; Endret 30. januar 2009 av stclem
stclem Skrevet 30. januar 2009 Forfatter Skrevet 30. januar 2009 Mer hjelp ønskes. Her er hele koden slik den ser ut i dag. Har prøvd meg på å legge til en txt fil. I txt fila skal det stå kort om videoen. En txt fil for hver video med samme navn som videoen. Dette funer i echo komandoen langt oppe i fila, men når jeg vil ha den inn i drop down boksen så blir det bare ett 1 tall bak datoen (som er navnet på videoen). forslag? <?php if($session->userlevel > $userlevelvideo){ //for brukere på nivå 2 ?> <html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!-- A minimal Flowplayer setup to get you started --> <!-- include flowplayer JavaScript file that does Flash embedding and provides the Flowplayer API. --> <script type="text/javascript" src="video/flowplayer-3.0.3.min.js"></script> </head><body> <?php $video = $_GET['video']; if(empty($video)) { echo "Velg en video<br>"; } else { ?> <?php $video = $_GET['video']; if(empty($video)) { $video = date('ymd'); } $ex = explode(' ', $video); $dato = $ex[0]; //Year $year_raw = substr($dato,0,2); if('20'.$year_raw <= date('Y')) { $year = '20'.$year_raw; } else { $year = '19'.$year_raw; } //Month $month = substr($dato,2,2); //Day $day = substr($dato,4,2); //Timestamp $timestamp = mktime(0,0,0,$month,$day,$year); //Date $date = date('d.m.y', $timestamp); //Navn if(count($ex) == 2) { $navn = $ex[1]; $split = explode('.',$navn); $navn = $split[0]; } echo $date.' '.$navn; echo "<br>"; $videotxt .= include("video/video/$video.txt"); echo "$videotxt"; ?> <!-- this A tag is where your Flowplayer will be placed. it can be anywhere --> <a href="<?php echo "$fullurlvideo/video/$video"; ?>" style="display:block;width:400px;height:400px" id="player"> </a> <!-- this will install flowplayer inside previous A- tag. --> <script> flowplayer("player", "video/swf/flowplayer-3.0.3.swf"); </script> <?php } ?> <?php $files = scandir( $dirvideo ); $fileCount = 0; $string = "<form action='' method='get' name='form'>\n\r\t<select name='video' onchange='this.form.submit();'><OPTION SELECTED VALUE=\"\">Velg video</OPTION>\n\r"; // sort( $files ); rsort( $files ); foreach( $files as $file ) { if( substr( $file, -3 ) == 'flv' ) { //START ENDRE NAVN $videofiler = $file; if(empty($videofiler)) { $videofiler = date('ymd'); } $ex = explode(' ', $videofiler); $dato = $ex[0]; //Year $year_raw = substr($dato,0,2); if('20'.$year_raw <= date('Y')) { $year = '20'.$year_raw; } else { $year = '19'.$year_raw; } //Month $month = substr($dato,2,2); //Day $day = substr($dato,4,2); //Timestamp $timestamp = mktime(0,0,0,$month,$day,$year); //Date $date = date('d.m.y', $timestamp); //Navn if(count($ex) == 2) { $navn = $ex[1]; $split = explode('.',$navn); $navn = $split[0]; } if(count($ex) == 2){ $videofile = "$date $navn $videotxt"; } else { $videofile = "$date $videotxt";} //SLUTT ENDRE NAVN $string .= "\t\t<option value='{$file}'>{$videofile}</option>\n\r"; $fileCount++; } } $string .= "\t</select>\n\r</form>"; if ($fileCount > 0) { echo "<table width=\"90%\"><tr><td><br>"; echo sprintf( "<br>Videoer: (Totalt: %s)<br />%s", $fileCount, $string ); echo "<a href=\"videofullliste.php\">Se full liste</a></td></tr></table>"; } ?> <?php } else{ } ?>
Martin A. Skrevet 31. januar 2009 Skrevet 31. januar 2009 include() returnerer ikke innholdet funksjonen inkluderte. $videotxt .= file_get_contents("video/video/{$video}.txt"); echo $videotxt;
stclem Skrevet 31. januar 2009 Forfatter Skrevet 31. januar 2009 (endret) Endret litt for ellers hentet den bare den videoen som vises på alle. Nå henter han videoen som jeg ser på men poster det samme på alle under i drop down menyen. <?php $video = $_GET['video']; if(empty($video)) { echo "<font class=\"sideoverskrift\">Velg en video</font><br>"; } else { ?> <?php $video = $_GET['video']; if(empty($video)) { $video = date('ymd'); } $ex = explode(' ', $video); $dato = $ex[0]; //Year $year_raw = substr($dato,0,2); if('20'.$year_raw <= date('Y')) { $year = '20'.$year_raw; } else { $year = '19'.$year_raw; } //Month $month = substr($dato,2,2); //Day $day = substr($dato,4,2); //Timestamp $timestamp = mktime(0,0,0,$month,$day,$year); //Date $date = date('d.m.y', $timestamp); //Navn if(count($ex) == 2) { $navn = $ex[1]; $split = explode('.',$navn); $navn = $split[0]; } echo $date.' '.$navn; echo "<br>"; include ("video/video/$video.txt"); ?> <!-- this A tag is where your Flowplayer will be placed. it can be anywhere --> <a href="<?php echo "$fullurlvideo/video/$video"; ?>" style="display:block;width:380px;height:380px" id="player"> </a> <!-- this will install flowplayer inside previous A- tag. --> <script> flowplayer("player", "video/swf/flowplayer-3.0.3.swf"); </script> <?php } ?> <?php $files = scandir( $dirvideo ); $fileCount = 0; $string = "<form action='' method='get' name='form'>\n\r\t<select name='video' onchange='this.form.submit();'><OPTION SELECTED VALUE=\"\">Velg video</OPTION>\n\r"; // sort( $files ); rsort( $files ); foreach( $files as $file ) { if( substr( $file, -3 ) == 'flv' ) { //START ENDRE NAVN $videofiler = $file; if(empty($videofiler)) { $videofiler = date('ymd'); } $ex = explode(' ', $videofiler); $dato = $ex[0]; //Year $year_raw = substr($dato,0,2); if('20'.$year_raw <= date('Y')) { $year = '20'.$year_raw; } else { $year = '19'.$year_raw; } //Month $month = substr($dato,2,2); //Day $day = substr($dato,4,2); //Timestamp $timestamp = mktime(0,0,0,$month,$day,$year); //Date $date = date('d.m.y', $timestamp); //Navn if(count($ex) == 2) { $navn = $ex[1]; $split = explode('.',$navn); $navn = $split[0]; } $videotxt .= file_get_contents("video/video/{$file}.txt"); if(count($ex) == 2){ $videofile = "$date $navn $videotxt"; } else { $videofile = "$date $videotxt";} //SLUTT ENDRE NAVN $string .= "\t\t<option value='{$file}'>{$videofile}</option>\n\r"; $fileCount++; } } $string .= "\t</select>\n\r</form>"; if ($fileCount > 0) { echo "<table width=\"90%\"><tr><td><br>"; echo sprintf( "<br>Videoer: (Totalt: %s)<br />%s", $fileCount, $string ); echo "<a href=\"videofullliste.php\">Se full liste</a></td></tr></table>"; } ?> <?php } else{ } ?> EDIT: Kanskje viktig å få med at ikke alle videoer har txt fil. Endret 31. januar 2009 av stclem
Martin A. Skrevet 31. januar 2009 Skrevet 31. januar 2009 $videotxt .= file_get_contents("video/video/{$file}.txt"); ".=" betyr at den vil legge til verdien på enden av variabelen. For hver gang den går gjennom arrayet/matrisen/listen vil den legge til videoteksten på slutten av den forrige. $videotext = ""; if( file_exists( "video/video/{$file}.txt" ) ) { $videotxt = file_get_contents( "video/video/{$file}.txt" ); }
stclem Skrevet 31. januar 2009 Forfatter Skrevet 31. januar 2009 Takk for hjelp, med litt endring så funket det. //Navn if(count($ex) == 2) { $navn = $ex[1]; $split = explode('.',$navn); $navn = $split[0]; } $videotxt = file_get_contents( "video/video/{$file}.txt" ); if( file_exists( "video/video/{$file}.txt" ) ) { if(count($ex) == 2){ $videofile = "$date $navn $videotxt"; } else { $videofile = "$date $videotxt";} } else { if(count($ex) == 2){ $videofile = "$date $navn"; } else { $videofile = "$date";} }
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå