# seo-redirection/8.4/common/util.php

SEO Redirection Plugin – 301 Redirect Manager, version 8.4. 637 lines.

- Page: https://pluginprobe.com/plugins/seo-redirection/8.4/code/common/util.php
- Raw: https://pluginprobe.com/plugins/seo-redirection/8.4/raw/common/util.php
- Modified: 2022-01-13T13:19:26+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/seo-redirection/8.4/code/common/util.php#L10-L20`.

```php
<?php
/*
Author: Fakhri Alsadi
Date: 16-7-2010
Contact: www.clogica.com   info@clogica.com    mobile: +972599322252
*/

if(!class_exists('clogica_util_1')){
class clogica_util_1{

private  $slug;
private  $plugin_file;
private  $plugin_path;
private  $plugin_url;

private  $option_group_name='clogica_option_group';
private  $plugin_folder='plugin_folder_name'; 



public function init ($option_gruop='clogica_option_group',$plugin_file='')
{
   $this->set_option_gruop($option_gruop); 
   $this->set_plugin_folder(basename(dirname($plugin_file)));
    $this->plugin_file = $plugin_file;
    $this->slug =  basename($plugin_file);
    $this->plugin_path = dirname($plugin_file) . '/';
    $this->plugin_url =plugin_dir_url($plugin_file);
   
}
public function get($key,$type='text')
{

	if(array_key_exists($key,$_GET))
	{
            $unsafe_val=$_GET[$key];
            return $this->sanitize_req($unsafe_val,$type);	  
	}
	else
	{
	    return '';
	}
}

//---------------------------------------------------- 

public function post($key,$type='text')
{
	if(array_key_exists($key,$_POST))
	{
            $unsafe_val=$_POST[$key];
            return $this->sanitize_req($unsafe_val,$type);	  
	}
	else
	{
	    return '';
	}
}


//----------------------------------------------------

public function sanitize_req($unsafe_val,$type='text')
{
	 switch ($type) {
	   case 'text': return  filter_var($unsafe_val, FILTER_SANITIZE_STRING);// sanitize_text_field($unsafe_val);
	   break;
	   
	   case 'int': return intval($unsafe_val);
	   break;
	   
	   case 'email':  return  filter_var($unsafe_val, FILTER_SANITIZE_EMAIL);//sanitize_email($unsafe_val);
	   break;
	   
	   case 'filename': return sanitize_file_name($unsafe_val);
	   break;
	   
           case 'title': return  filter_var($unsafe_val, FILTER_SANITIZE_STRING);//sanitize_title($unsafe_val);
	   break;
       
            case 'url' : return  filter_var($unsafe_val, FILTER_SANITIZE_SPECIAL_CHARS);//sanitize_title($unsafe_val);
	   break;
       	      
	   default:
           //return sanitize_text_field($unsafe_val);
               return filter_var($unsafe_val, FILTER_SANITIZE_STRING);
               
            // filter_var($var, FILTER_SANITIZE_URL)
            // FILTER_SANITIZE_STRING
            // FILTER_SANITIZE_EMAIL
            // FILTER_SANITIZE_NUMBER_INT 
	   
	   }
}

//---------------------------------------------------- 

public function get_ref()
{
	if(array_key_exists('HTTP_REFERER',$_SERVER))
	{
	      return $this->sanitize_req(strip_tags($_SERVER['HTTP_REFERER']),"url"); 
	}
	else
	{
	    return '';
	}
}

//---------------------------------------------------- 

public function set_option_gruop($option_group_name)
{
	$this->option_group_name=$option_group_name;
}

//---------------------------------------------------- 

public function get_option_gruop()
{
	return $this->option_group_name;
}

//----------------------------------------------------

public function set_plugin_folder($folder)
{
	$this->plugin_folder=$folder;
}


//----------------------------------------------------

public function get_plugin_folder()
{
	return $this->plugin_folder;
}

//---------------------------------------------------- 


public function update_my_options($options)
{	
	update_option($this->get_option_gruop(),$options);
}

//---------------------------------------------------- 

public function get_my_options()
{	
	$options=get_option($this->get_option_gruop());
	if(!is_array($options))
	{
		add_option($this->get_option_gruop());
		$options= array();
	}
	return $options;
}

//---------------------------------------------------

public function get_option_value($key)
{
	$options=$this->get_my_options();
        if(array_key_exists($key,$options))
        {
            return $options[$key];
        }else
        {
            return '';
        }
}
//---------------------------------------------------- 

public function update_option($key,$value)
{	
	$options=$this->get_my_options();
	$options[$key]=$value;
	$this->update_my_options($options);
}

//---------------------------------------------------- 

public function update_post_option($key)
{	
	$options=$this->get_my_options();
	$options[$key]=intval($this->post($key));
	$this->update_my_options($options);				
}


//---------------------------------------------------- 


public function delete_my_options()
{	
    delete_option($this->get_option_gruop());
}



/* get_current_URL ----------------------------------------------  */
		public function get_current_URL()
		{
			$pageURL = 'http';
			if ( array_key_exists("HTTPS",$_SERVER) && $_SERVER["HTTPS"] == "on")
			{
				$pageURL .= "s";
			}
			$pageURL .= "://";
			
			
			
			
			$pageURL .= ($_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]);
			return $this->sanitize_req($pageURL,"url");
		}

//-----------------------------------------------------

		public function remove_url_http_www($url)
		{
			$url = str_ireplace("http://www.",'',$url);
			$url = str_ireplace("https://www.",'',$url);
			$url = str_ireplace("http://",'',$url);
			$url = str_ireplace("https://",'',$url);
			return ($url);
		}
//-----------------------------------------------------
		public function make_relative_url($url)
		{
			
			if($url=="")
			{
				return "";
			}
			$site_url = $this->remove_url_http_www(site_url());
			
			if(stripos($url,$site_url) !==false)
			{
				$url_no_www = $this->remove_url_http_www($url);
				if(strtolower(substr($url_no_www,0,strlen($site_url))) == strtolower($site_url))
				{
					$url = str_ireplace($site_url,'',$url_no_www);
				}
			}
			if($url=="")
			{
				$url="/";
			}
			return esc_url_raw($url);
		}

//----------------------------------------------------
		public function make_absolute_url($url)
		{
			if(substr($url,0,1)=='/')
			{
				$url = site_url() . $url;
			}
			return esc_url_raw($url);
		}

//----------------------------------------------------

		public function get_current_relative_url()
		{
			return $this->make_relative_url($this->get_current_URL());
		}
//----------------------------------------------------
		public function is_valid_url($url)
		{
			if(stripos($url,'://')!== false || substr($url,0, 1)=='/')
			{
				return true;
			}else{
				return false;
			}
		}
//----------------------------------------------------

public function WPSR_get_current_parameters($remove_parameter="")
{	
	
	if($_SERVER['QUERY_STRING']!='')
	{
		$qry = '?' . urldecode(sanitize_text_field($_SERVER['QUERY_STRING']));

		if(is_array($remove_parameter))
		{
			for($i=0;$i<count($remove_parameter);$i++)
			{
				if(array_key_exists($remove_parameter[$i],$_GET)){
    				$string_remove = '&' . $remove_parameter[$i] . "=" . $this->get($remove_parameter[$i]);
    				$qry=str_replace($string_remove,"",$qry);
    				$string_remove = '?' . $remove_parameter[$i] . "=" . $this->get($remove_parameter[$i]);
    				$qry=str_replace($string_remove,"",$qry);
				}
			}
			
		}else{		
			if($remove_parameter!='')
			{
				if(array_key_exists($remove_parameter,$_GET)){
				    $string_remove = '&' . $remove_parameter . "=" . $this->get($remove_parameter);
				    $qry=str_replace($string_remove,"",$qry);
				    $string_remove = '?' . $remove_parameter . "=" . $this->get($remove_parameter);
				    $qry=str_replace($string_remove,"",$qry);
				}
			}
		}
                
		return strip_tags($this->sanitize_req($qry,"url"));
	}else
	{
		return "";
	}
} 


//---------------------------------------------------------------

public function get_plugin_path($folder='')
{
        return WP_PLUGIN_DIR . '/' .  $this->get_plugin_folder() . '/' . $folder;
}

/* get_plugin_path ---------------------------------------------  
public function get_plugin_path()
{
   return $this->plugin_path;
}*/

/* get plugin slug -------------------------------------------- */
public function get_plugin_slug()
{
    return $this->slug;
}
        
 /* get plugin slug -------------------------------------------- */
public function get_plugin_file()
{
    return $this->plugin_file;
}
//-----------------------------------------------------


public function get_plugin_url($url='')
{
	return $this->plugin_url;
}


//----------------------------------------------------

public function get_visitor_IP()
{
	$ipaddress = sanitize_text_field($_SERVER['REMOTE_ADDR']);
	
	if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
		$ipaddress = sanitize_text_field($_SERVER['HTTP_CLIENT_IP']);
	} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
		$ipaddress = sanitize_text_field($_SERVER['HTTP_X_FORWARDED_FOR']);
	}
	
	return sanitize_text_field($ipaddress) ;
}

//----------------------------------------------------


public function get_visitor_OS()
{

$userAgent= sanitize_text_field($_SERVER['HTTP_USER_AGENT']);
		$oses = array (
		'iPhone' => '(iPhone)',
		'Windows 3.11' => 'Win16',
		'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', 
		'Windows 98' => '(Windows 98)|(Win98)',
		'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
		'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
		'Windows 2003' => '(Windows NT 5.2)',
		'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)',
		'Windows 7' => '(Windows NT 6.1)|(Windows 7)',
		'Windows 8' => '(Windows NT 6.2)|(Windows 8)',
		'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
		'Windows ME' => 'Windows ME',
		'Open BSD'=>'OpenBSD',
		'Sun OS'=>'SunOS',
		//'Linux'=>'(Linux)|(X11)', to detect if android or not
		'Safari' => '(Safari)',
		'Macintosh'=>'(Mac_PowerPC)|(Macintosh)',
		'QNX'=>'QNX',
		'BeOS'=>'BeOS',
		'OS/2'=>'OS\/2',
		'SearchBot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp\/cat)|(msnbot)|(ia_archiver)'
	);

	foreach($oses as $os=>$pattern){ 

		if(preg_match('/'.$pattern. '/i', $userAgent)) { 
			return $os; 
		}
	}
	
	// more tests
	
	$ua = strtolower($userAgent);
	
	if(stripos($ua,'android') !== false) { 
	    return 'Android';
	}
	
	if(stripos($ua,'iphone') !== false) {
	    return 'iOS';
	}
	

	if(stripos($ua,'ipad') !== false) {
	    return 'iOS';
	}
	
	if(stripos($ua,'ipod') !== false) {
	    return 'iOS';
	}
	
	if(stripos($ua,'windows') !== false) {
	    return 'Windows';
	}
	
	
	if(stripos($ua,'linux') !== false) {
	    return 'Linux';
	}
	
	
	if(stripos($ua,'googlebot') !== false) {
	    return 'Googlebot';
	}
	
	if(stripos($ua,'bot') !== false) {
	    return 'SearchBot';
	}
			
	
	return 'Unknown';
}

//-----------------------------------------------------------------

public function get_visitor_Browser()
{

$u_agent= sanitize_text_field($_SERVER['HTTP_USER_AGENT']);
$bname = 'Unknown';

if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        $bname = 'Internet Explorer';
    }
    elseif(preg_match('/Firefox/i',$u_agent))
    {
        $bname = 'Firefox';
    }
    elseif(preg_match('/Chrome/i',$u_agent))
    {
        $bname = 'Chrome';
    }
    elseif(preg_match('/Safari/i',$u_agent))
    {
        $bname = 'Safari';
    }
    elseif(preg_match('/Opera/i',$u_agent))
    {
        $bname = 'Opera';
    }
    elseif(preg_match('/Netscape/i',$u_agent))
    {
        $bname = 'Netscape';
    }
    elseif(preg_match('/googlebot/i',$u_agent))
    {
        $bname = 'GoogleBot';
    }
    elseif(preg_match('/bot/i',$u_agent))
    {
        $bname = 'SearchBot';
    }
    
    
 return sanitize_text_field($bname);    
    
}


//---------------------------------------------------- 

public function option_msg($msg,$out='echo')
{	
	
	if($out=='echo')
	echo '<div id="message" class="updated"><p>' . esc_html($msg) . '</p></div>';	
	elseif($out=='push')
	$this->push_msg(esc_html($msg));
}

//---------------------------------------------------- 


public function info_option_msg($msg,$out='echo')
{	

    
	if($out=='echo')
	echo '<div id="message" class="updated"><p><div class="info_icon"></div> ' . esc_html($msg) . '</p></div>';	
	elseif($out=='push')
	$this->push_msg(esc_html($msg));
	

}

//---------------------------------------------------- 


public function warning_option_msg($msg,$out='echo') 
{	
		
	if($out=='echo')
	echo '<div id="message" class="error"><p><div class="warning_icon"></div> ' . esc_html($msg) . '</p></div>';
	elseif($out=='push')
	$this->push_msg(esc_html($msg));
	
	
}

//---------------------------------------------------- 

public function success_option_msg($msg,$out='echo')
{	
		
	if($out=='echo')
	echo '<div id="message" class="updated"><p><div class="success_icon"></div> ' . esc_html($msg) . '</p></div>';
	elseif($out=='push')
	$this->push_msg(esc_html($msg));
}

//---------------------------------------------------- 

public function failure_option_msg($msg,$out='echo')
{	
	 		
	if($out=='echo')
	echo '<div id="message" class="error"><p><div class="failure_icon"></div> ' . esc_html($msg) . '</p></div>';
	elseif($out=='push')
	$this->push_msg(esc_html($msg));
	
}

//----------------------------------------------------

private function push_msg($msg)
{	
	global $utilpro;
	$msgs=$utilpro->get_option_value('admin_notices');
	if(is_array($msgs))
    {
        $msgs[count($msgs)]=$msg;
        
    }else
    {
        $msgs = array();
        $msgs[0]=$msg;
    }
    
    $utilpro->update_option('admin_notices',$msgs);
	
}

//---------------------------------------------------- 


public function there_is_cache()
{	

$plugins=get_option( 'active_plugins' );

		    for($i=0;$i<count($plugins);$i++)
		    {   
		       if ( array_key_exists($i, $plugins) && stripos($plugins[$i],'cache')!==false)
		       {
		       	  return $plugins[$i];
		       }
		    }


	return '';				
}

//---------------------------------------------------- 


public function there_is_plugin($plugin)
{	

$plugins=get_option( 'active_plugins' );

		    for($i=0;$i<count($plugins);$i++)
		    {   
		       $phpfile = substr( $plugins[$i], strrpos( $plugins[$i], '/' )+1 );
		       $phpfile = explode(".", $phpfile);
		       $plugin_name = $phpfile[0];
		       if ($plugin_name==$plugin)
		       {
		         return true;  
		       }
		    }


	return false;				
}
	
//---------------------------------------------------------------
	
public function regex_prepare($string)
{
 
    $from= array('.', '+', '*', '?','[','^',']','$','(',')','{','}','=','!','<','>','|',':','-',')','/', '\\');
    $to= array('\\.', '\\+', '\\*', '\\?','\\[','\\^','\\]','\\$','\\(','\\)','\\{','\\}','\\=','\\!','\\<','\\>','\\|','\\:','\\-','\\)','\\/','\\\\');
    return str_replace($from,$to,$string);
 
}
	
 
}}
     
?>
```
