stclem Skrevet 29. januar 2009 Del 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); ?> Lenke til kommentar
alfred97 Skrevet 29. januar 2009 Del 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 Lenke til kommentar
stclem Skrevet 29. januar 2009 Forfatter Del Skrevet 29. januar 2009 takk for hjelp, men skjønner ikke helt hvordan jeg skal bruke koden din. Lenke til kommentar
alfred97 Skrevet 29. januar 2009 Del 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. Lenke til kommentar
stclem Skrevet 29. januar 2009 Forfatter Del Skrevet 29. januar 2009 hmmm.. tror du overvurderer mine ferdigheter. Dette klarer jeg ikke selv. Lenke til kommentar
Martin A. Skrevet 29. januar 2009 Del 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. Lenke til kommentar
stclem Skrevet 29. januar 2009 Forfatter Del Skrevet 29. januar 2009 Takk, funker den. Et lite ekstraspm. Kan jeg få dette inn i en drop down boks? Lenke til kommentar
itsmebth Skrevet 30. januar 2009 Del Skrevet 30. januar 2009 glob('*.flv') er vel bedre til dette formålet. Lenke til kommentar
AlecTBM Skrevet 30. januar 2009 Del 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 Lenke til kommentar
stclem Skrevet 30. januar 2009 Forfatter Del 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> Lenke til kommentar
Martin A. Skrevet 30. januar 2009 Del 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 ); } ?> Lenke til kommentar
stclem Skrevet 30. januar 2009 Forfatter Del 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 Lenke til kommentar
stclem Skrevet 30. januar 2009 Forfatter Del 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{ } ?> Lenke til kommentar
Martin A. Skrevet 31. januar 2009 Del Skrevet 31. januar 2009 include() returnerer ikke innholdet funksjonen inkluderte. $videotxt .= file_get_contents("video/video/{$video}.txt"); echo $videotxt; Lenke til kommentar
stclem Skrevet 31. januar 2009 Forfatter Del 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 Lenke til kommentar
Martin A. Skrevet 31. januar 2009 Del 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" ); } Lenke til kommentar
stclem Skrevet 31. januar 2009 Forfatter Del 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";} } Lenke til kommentar
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å