Your IP : 216.73.216.240


Current Path : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/
Upload File :
Current File : /home/juvelize/saulnois/tmp/install_695d2cf0b4957/src/TfString.php

<?php
/*
* @package		Tech Fry Library
* @license		https://www.gnu.org/licenses/gpl-3.0.en.html
*/

namespace TechFry\Library;

defined('_JEXEC') or die;

use Joomla\CMS\Factory;
use Joomla\String\StringHelper;

class TfString
{
    // $data - string or array of string
    public static function process($function, $data, $params = array())
    {
        // $params -> upto two
        
        switch ($function)
        {
            // One argument - data, no parameter
            case 'strtolower' :
            case 'strtoupper' :
            case 'ucfirst' :
            case 'ucwords' :
            case 'strlen' :
            case 'trim' :
            case 'ltrim' :
            case 'rtrim' :
            case 'strrev' :
            case 'str_word_count' :
            case 'htmlspecialchars_decode' :
            case 'htmlspecialchars' :
            case 'parse_url' :
            case 'str_getcsv' :
            case 'str_shuffle' :
            case 'str_split' :
            case 'strip_tags' :
            case 'base64_decode' :
            case 'base64_encode' :
            case 'urldecode' :
            case 'urlencode' :
            case 'html_entity_decode' :
            case 'htmlentities' :
            case 'addslashes' :
            case 'stripslashes' :
            case 'bin2hex' :
            case 'hex2bin' :
            case 'count_chars' :
            case 'md5' :
            case 'nl2br' :
            case 'str_decrement' :
            case 'str_increment' :
                $result = self::one($function, $data);
                break;
                
            // Two arguments - data, 1 parameter
            case 'str_repeat' :
            case 'strtok' :
            case 'rand' :
            case 'str_contains' :
            case 'str_ends_with' :
            case 'str_starts_with' :
            case 'strstr' :
                $result = self::two($function, $data, $params[0]);
                break;
            
            // Three arguments - data, 2 parameters
            case 'substr' :
            case 'wordwrap' :
                $result = self::three($function, $data, $params[0], $params[1]);
                break;
                
            // String as second argument
            case 'explode' : // Returns array
            case 'preg_match' :
                $result = $function($params[0], $data);
                break;
                
            // String as third arguument
            case 'str_replace' :
            case 'str_ireplace' :
            case 'preg_replace' :
                $result = $function($params[0], $params[1], $data);
                break;

            // Special Case
            case 'parse_str' :
                parse_str($data, $result);
                break;
        }
        
        return $result;
    }
    
    public static function one($function, $data)
    {
        if (\is_array($data))
        {
            foreach ($data as $k => $str)
            {
                $data[$k] = $function($str);
            }
        }
        else
        {
            $data = $function($data);
        }
        
        return $data;
    }
    
    public static function two($function, $data, $param)
    {
        if (\is_array($data))
        {
            foreach ($data as $k => $str)
            {
                $data[$k] = $function($str, $param);
            }
        }
        else
        {
            $data = $function($data, $param);
        }
        
        return $data;
    }
    
    public static function three($function, $data, $param1, $param2)
    {
        if (\is_array($data))
        {
            foreach ($data as $k => $str)
            {
                $data[$k] = $function($str, $param1, $param2);
            }
        }
        else
        {
            $data = $function($data, $param1, $param2);
        }
        
        return $data;
    }
}