#native_company# #native_desc#
#native_cta#

Random Line Loader

By Oron Gill Haus
on April 26, 2001

Version: 1.0

Type: Class

Category: File Management

License: GNU General Public License

Description: Loads a file into memory one line at a time. The lines can then be accessed randomly from the class. Possible uses include blind banner ad rotation.

<?php
	// lineloader.php
	// Loads a file into memory one line at a time.  The lines can then
	// be accessed randomly from the class.  Possible uses include blind
	// banner ad rotation.
	// This code is freeware - however, please include reference to Oron and 
	// http://www.eastcoasthappy.com in your modified code.
	//
	// Author: Oron Gill Haus
	// Email:  [email protected]
		
	class Lineloader {
		
		// properties definitions
		var $filename;
		// relative paths are acceptable...fully qualified guaranteed
		var $filepath = "http://yoursite.com/flatfiles/";
		var $linearray = array();

		function Lineloader($filename) {
			$this->setFileName($filename);
		}

		function setFilename($filename) {
			$this->filename=$filename;
			$this->parseFile();
		}
			
		function getFilepath() {
			return $this->filepath;
		}

		function setFilepath($filepath) {
			$this->filepath=$filepath;
		}

		function getFilename() {
			return $this->filename;
		}

		function getLinearray() {
			return $this->linearray;
		}

		function getRandomArrayLine() {
			// choose a random line from the array and return
			// fastest randomization used - PHP recommended values
			mt_srand((double)microtime()*1000000);
			$loc = mt_rand(0,sizeof($this->linearray)-1);
			return $this->linearray[$loc];
		}

		function parseFile() {
			// parse the flat file by line and store in object's line array	
			$fd = fopen ($this->getFilepath() . $this->getFilename(), "r");
			while (!feof($fd)) {
				$buffer = fgets($fd, 4096);
				$this->linearray[] = $buffer; // add the line to the array
			}
			fclose ($fd);
		}
	
	}
?>