code: public static function preserveBasicEntities($varValue)
  	{
  		if ($varValue === null || $varValue == '')
  		{
  			return $varValue;
  		}
  
  		// Recursively clean arrays
  		if (\is_array($varValue))
  		{
  			foreach ($varValue as $k=>$v)
  			{
  				$varValue[$k] = static::preserveBasicEntities($v);
  			}
  
  			return $varValue;
  		}
  
  		$varValue = str_replace
  		(
  			array('[&amp;]', '&amp;', '[&lt;]', '&lt;', '[&gt;]', '&gt;', '[&nbsp;]', '&nbsp;', '[&shy;]', '&shy;'),
  			array('[&]', '[&]', '[lt]', '[lt]', '[gt]', '[gt]', '[nbsp]', '[nbsp]', '[-]', '[-]'),
  			$varValue
  		);
  
  		return $varValue;
  	}
docs: Preserve basic entities by replacing them with square brackets (e.g. &amp; becomes [amp])
  
  @param mixed $varValue A string or array
  
  @return mixed The string or array with the converted entities