Gå til innhold

[Løst]liste filer fra mappe, motsatt rekkefølge?


Anbefalte innlegg

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
Videoannonse
Annonse

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 av alfred97
Lenke til kommentar
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

<?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

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

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

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 av stclem
Lenke til kommentar

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

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 av stclem
Lenke til kommentar

$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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...