<?php

if ( ! function_exists ( 'mb_trim' ) ) {
	function mb_trim( $string, $toTrim ) {

		if ( '' == $string ) return '';
		if ( ! is_array( $toTrim ) ) {
			$arToTrim = mb_str_split( $toTrim );
		}
		if ( ! count( $arToTrim ) ) return $string;

		$arString = mb_str_split( $string );

		$changed = true;
		while ( $changed ) {
			$changed = false;
			if ( in_array( $arString[ 0 ], $arToTrim ) ) {
				array_shift( $arString );
				if (0 == count( $arString ) ) return '';
				$changed = true;
				
			}
			if ( in_array( $arString[ count( $arString ) -1 ], $arToTrim ) ) {
				array_pop( $arString );
				if (0 == count( $arString ) ) return '';
				$changed = true;			
			}
		}
		return implode( '', $arString );
	}
} else {
	trigger_error( 'The function "mb_trim" exists! Pleace check your script(s)!', E_USER_ERROR );
}

if ( ! function_exists ( 'mb_rtrim' ) ) {
	function mb_rtrim( $string, $toTrim ) {

		if ( '' == $string ) return '';
		if ( ! is_array( $toTrim ) ) {
			$arToTrim = mb_str_split( $toTrim );
		}
		if ( ! count( $arToTrim ) ) return $string;

		$arString = mb_str_split( $string );

		$changed = true;
		while ( $changed ) {
			$changed = false;
			if ( in_array( $arString[ count( $arString ) -1 ], $arToTrim ) ) {
				array_pop( $arString );
				if (0 == count( $arString ) ) return '';
				$changed = true;			
			}
		}
		return implode( '', $arString );
	}
} else {
	trigger_error( 'The function "mb_rtrim" exists! Pleace check your script(s)!', E_USER_ERROR );
}

if ( ! function_exists ( 'mb_ltrim' ) ) {
	function mb_ltrim( $string, $toTrim ) {

		if ( '' == $string ) return '';
		if ( ! is_array( $toTrim ) ) {
			$arToTrim = mb_str_split( $toTrim );
		}
		if ( ! count( $arToTrim ) ) return $string;

		$arString = mb_str_split( $string );

		$changed = true;
		while ( $changed ) {
			$changed = false;
			if ( in_array( $arString[ 0 ], $arToTrim ) ) {
				array_shift( $arString );
				if (0 == count( $arString ) ) return '';
				$changed = true;
				
			}
		}
		return implode( '', $arString );
	}
} else {
	trigger_error( 'The function "mb_ltrim" exists! Pleace check your script(s)!', E_USER_ERROR );
}
