<?php
class feature {
	/**
	 *
	 * @param
	 *       	 type 0 return first character of string in capital letter.
	 *       	
	 * @param
	 *       	 type 1 return first character of all word in capital letter.
	 *       	
	 * @param
	 *       	 type 2 return all character of string in small letters.
	 *       	
	 * @param
	 *       	 type 3 return all character of string in capital letters.
	 *       	
	 * @param
	 *       	 type 4 return first character of string in small letter.
	 *       	
	 * @param
	 *       	 type 5 return first character of all word in capital letter
	 *        	(also convert other characters in small).
	 *       	
	 */
	public function textstyler($string, $type) {
		
		$str = trim ( preg_replace ( '/[^A-Za-z0-9\-]/', ' ', $string ) ); // Removes
		                                                             // special chars.
		
		if ($type == 0) {
			return ucfirst ( $str );
		} elseif ($type == 1) {
			return ucwords ( $str );
		} elseif ($type == 2) {
			return strtolower ( $str );
		} elseif ($type == 3) {
			return strtoupper ( $str );
		} elseif ($type == 4) {
			return lcfirst ( $str );
		} elseif ($type == 5) {
			return ucwords ( strtolower ( $str ) );
		}
	}
	
	public function Delete($path) {
		if (is_dir ( $path ) === true) {
			$files = new RecursiveIteratorIterator ( new RecursiveDirectoryIterator ( $path ), RecursiveIteratorIterator::CHILD_FIRST );
			
			foreach ( $files as $file ) {
				if (in_array ( $file->getBasename (), array ('.', '..' ) ) !== true) {
					if ($file->isDir () === true) {
						rmdir ( $file->getPathName () );
					} 

					else if (($file->isFile () === true) || ($file->isLink () === true)) {
						unlink ( $file->getPathname () );
					}
				}
			}
			
			return rmdir ( $path );
		} 

		else if ((is_file ( $path ) === true) || (is_link ( $path ) === true)) {
			return unlink ( $path );
		}
		
		return false;
	}
	
	public function convert_number_to_words($number) {
		$hyphen = '-';
		$conjunction = ' and ';
		$separator = ', ';
		$negative = 'negative ';
		$decimal = ' point ';
		$dictionary = array (
				0 => 'zero',
				1 => 'one',
				2 => 'two',
				3 => 'three',
				4 => 'four',
				5 => 'five',
				6 => 'six',
				7 => 'seven',
				8 => 'eight',
				9 => 'nine',
				10 => 'ten',
				11 => 'eleven',
				12 => 'twelve',
				13 => 'thirteen',
				14 => 'fourteen',
				15 => 'fifteen',
				16 => 'sixteen',
				17 => 'seventeen',
				18 => 'eighteen',
				19 => 'nineteen',
				20 => 'twenty',
				30 => 'thirty',
				40 => 'fourty',
				50 => 'fifty',
				60 => 'sixty',
				70 => 'seventy',
				80 => 'eighty',
				90 => 'ninety',
				100 => 'hundred',
				1000 => 'thousand',
				1000000 => 'million',
				1000000000 => 'billion',
				1000000000000 => 'trillion',
				1000000000000000 => 'quadrillion',
				1000000000000000000 => 'quintillion'
		);
	
		if (! is_numeric ( $number )) {
			return false;
		}
	
		if (($number >= 0 && ( int ) $number < 0) || ( int ) $number < 0 - PHP_INT_MAX) {
			// overflow
			trigger_error ( 'convert_number_to_words only accepts numbers between -' . PHP_INT_MAX . ' and ' . PHP_INT_MAX, E_USER_WARNING );
			return false;
		}
	
		if ($number < 0) {
			return $negative . convert_number_to_words ( abs ( $number ) );
		}
	
		$string = $fraction = null;
	
		if (strpos ( $number, '.' ) !== false) {
			list ( $number, $fraction ) = explode ( '.', $number );
		}
	
		switch (true) {
			case $number < 21 :
				$string = $dictionary [$number];
				break;
			case $number < 100 :
				$tens = (( int ) ($number / 10)) * 10;
				$units = $number % 10;
				$string = $dictionary [$tens];
				if ($units) {
					$string .= $hyphen . $dictionary [$units];
				}
				break;
			case $number < 1000 :
				$hundreds = $number / 100;
				$remainder = $number % 100;
				$string = $dictionary [$hundreds] . ' ' . $dictionary [100];
				if ($remainder) {
					$string .= $conjunction . convert_number_to_words ( $remainder );
				}
				break;
			default :
				$baseUnit = pow ( 1000, floor ( log ( $number, 1000 ) ) );
				$numBaseUnits = ( int ) ($number / $baseUnit);
				$remainder = $number % $baseUnit;
				$string = convert_number_to_words ( $numBaseUnits ) . ' ' . $dictionary [$baseUnit];
				if ($remainder) {
					$string .= $remainder < 100 ? $conjunction : $separator;
					$string .= convert_number_to_words ( $remainder );
				}
				break;
		}
	
		if (null !== $fraction && is_numeric ( $fraction )) {
			$string .= $decimal;
			$words = array ();
			foreach ( str_split ( ( string ) $fraction ) as $number ) {
				$words [] = $dictionary [$number];
			}
			$string .= implode ( ' ', $words );
		}
	
		return $string;
	}

}

?>