| 
	
 | 
 Posted by Jenny Purcell on 12/30/07 00:02 
I have a function below that I (partially) wrote to handle a 
particular situation.  
 
I'm working with horse records in text files. I want to list all the 
files with horse information in them, then a dash "-", then, a brief 
description of the horse (taken from a separate text file). If that 
description isn't in the text file, it leaves a blank line (so I know 
to add it). The lines of extra information, as listed in separate 
file, do not have to be in any order. 
 
This all works: http://snowyriver.zzl.org/race_cards/index.php 
 
I find that that scandir() also scans for subdirectories. I _only_ 
want to scan for .txt files. Scandir is good for me to use because it 
alphabetizes the files without any additional work. 
 
I would appreciate any help that could be offered as far as ways to 
adjust my $files array so it's only made up of .txt files. 
 
Thank you for reading this post! 
 
Jenny 
 
<!-- Start PHP Functions --> 
 
 
<?php  
// Links creating script taken from: 
http://www.phpfreaks.com/tutorials/146/0.php 
// Originally added October 21st, 2007 
// Modified by Jenny Purcell to be a subroutine to call it multiple 
times. 
// Further modified to include info on each horse from a separate file 
(by directory). 
//  
 
function make_links($dir,$breed) { // create a user-defined function 
named make_links 
	$files = scandir($dir) ; 
	$breedfile = @fopen("$breed","r",4096); 
	$count = -1 ; // for array 
	if ($breedfile) { // If file exists, execute while 
	    while (!feof($breedfile)) { // while we haven't reached 
the End of File, read lines into the buffer. 
		   $count = $count + 1 ; // increment 
//		   $horses[$count][1] = ""; 
		   $horses[] = explode(" - ",fgets($breedfile)); // 
separate line elements into a 2 dimensional array	 
	    } // close while 
	fclose($breedfile); // close file when it reaches the EOF 
	} // close if 
	foreach($files as $ind_file){ // start outer foreach loop 
		$letter = strtoupper(substr($ind_file,0,1));  
		if($ind_file != '.' && $ind_file != '..') { // start 
2nd if loop 
		$count2 = -1 ;	 
		$temp = ""; 
		while ($count2 < $count) { // start inner foreach  
			$count2 = $count2 + 1 ; 
			if ($horses[$count2][0]== $ind_file) { // 
start 1st if loop 
				$temp = $horses[$count2][1]; // temp 
is the info on the horse file 
			} // end 1st if loop 
	} // end inner foreach 
?>   
			<li><a name="<?php echo $letter; ?>" 
href="<?php echo "$dir"."/".$ind_file; ?>"><?php echo $ind_file;?></a> 
<?php echo " - $temp" ;?></li>  
<?php  
		} // end 2nd if loop 
	} // end outer foreach loop 
 
} // end user-defined make_links function 
 
?>  
<!-- End PHP Functions --> 
-- 
Jenny Purcell 
Snowy River Farms (PBEM Fantasy Horse Racing) 
http://snowyriver.zzl.org/
 
  
Navigation:
[Reply to this message] 
 |