home *** CD-ROM | disk | FTP | other *** search
- News lister
-
- This scripts collects the filenames in a specified directory and outputs a link to each file with date and timestamp taken from the filename.
-
- <?php
- /*
- Newslister v. 0.02
-
- This newslister is based on another script I've made called File lister.
- This scripts collects the filenames in a specified directory and outputs a link to each file with
- date and timestamp taken from the filename.
- It also outputs a header for each month, so all ads during a month is collected on one place.
- Its also sorted in descending order, with the newest ads first.
-
- The only variable you would need to change is the $newsdir(use a trailing slash) to get it working.
-
- Copyleft(L) 1999 Eric Persson, eric@persson.tm, http://www.persson.tm/scripts/
-
- */
-
- /*
- This is the code I used to create the filenames with. To make it easy I suggest you to make a
- small textbox on a page and let the script take care of writing it to a suitable directory.
-
- $fileyear=date(Y);
- $filemonth=date(m);
- $fileday=date(d);
- $filehour=date(H);
- $fileminute=date(i);
- $filesecond=date(s);
- $completefilename="$fileyear-$filemonth-$fileday.$filehour-$fileminute-$filesecond";
- */
-
-
- Function searchdir($basedir)
- {
- global $filelisting, $number; //defines the two variables as global so they can be accessed from outside the function
- unset($filelisting); //kills $filelisting in case it have been used earlier in the script
- unset($number); //same as above
- $handle=opendir($basedir);
- while ($file = readdir($handle)) {
- if ($file== "." or $file== "..") {
- } else {
- $filelisting[]= "$basedir$file";
- };
- };
-
- $number=sizeof($filelisting); //gets the size of the array
- };
-
- //variables to change...
- $newsdir= "../news/"; //Set the path where the newsfiles is located
- //stop here
-
-
- searchdir($newsdir);
- $number=$number-1;
-
- sort($filelisting); //sorts the array $filelisting
- $otheryear= "0"; //sets $otheryear to zero
-
- while($number>= "0"){
- $file=$filelisting[$number];
- $linkfile=$file; //saves the correct path to the linkfile for future use.
- $file=ereg_replace( "$newsdir", '', $file ); //Strips the $newsdir from $file
-
- //Script below extracts the correct date and time from the filename
- //The script suspects the format of the filename should be Y-m-d.H-m-s for example 1999-08-11.18-00-11
- //In case you have an extension(for example .html) on your newsfiles it will be putted in $file[2]
- $file=split( "\.",$file,3); //Splits the $file by the .
- $date=split( "-",$file[0],3); //splits the date in $file[0] by the -
- $year=$date[0]; //year is the first part of the date in $date[0]
- $month=$date[1]; //month is the second part of the date in $date[1]
- $day=$date[2]; //day is the third part of the date in $date[2]
- $time=ereg_replace( '-', ':', $file[1] ); //To make the time string look good you only have to replace the - with :
-
- $number=$number-1; //decrements the variable $number to make the while function to end in a reasonable amount of time
- $yearmonth= "$year-$month";
-
- if($yearmonth!=$otheryear){
- echo "<BR><B><U>";
- echo date( "F", mktime(0,0,0,$month,1,$year)); //outputs the correct month in characters
- echo " $yearmonth[0]";
- echo "</U></B><BR>";
- echo "<A HREF=\"$linkfile\">$year-$month-$day $time</A><BR>";
- $otheryear=$yearmonth; //Makes $otheryear equals to $yearmonth to stop the script from printing headers more than once.
- $inc=$inc+1;
- }else{
- echo "<A HREF=\"$linkfile\">$year-$month-$day $time</A><BR>";
- $inc=$inc+1;
- }; //end of if statement
-
- }; //end of while statement
-
- ?>
-
-