NexusLeads Webshell
NexusLeads


Server : LiteSpeed
System : Linux server 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : alsaif ( 1057)
PHP Version : 7.4.33
Disable Function : show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/alsaif/domains/alsaif.group/private_html/libraries/regularlabs/src/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/alsaif/domains/alsaif.group/private_html/libraries/regularlabs/src/Title.php
<?php
/**
 * @package         Regular Labs Library
 * @version         23.9.3039
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            https://regularlabs.com
 * @copyright       Copyright © 2023 Regular Labs All Rights Reserved
 * @license         GNU General Public License version 2 or later
 */

namespace RegularLabs\Library;

defined('_JEXEC') or die;

/**
 * Class Title
 *
 * @package RegularLabs\Library
 */
class Title
{
    /**
     * Cleans the string to make it usable as a title
     *
     * @param string $string
     * @param bool   $strip_tags
     * @param bool   $strip_spaces
     *
     * @return string
     */
    public static function clean($string = '', $strip_tags = false, $strip_spaces = true)
    {
        if (empty($string))
        {
            return '';
        }

        // remove comment tags
        $string = RegEx::replace('<\!--.*?-->', '', $string);

        // replace weird whitespace
        $string = str_replace(chr(194) . chr(160), ' ', $string);

        if ($strip_tags)
        {
            // remove svgs
            $string = RegEx::replace('<svg.*?</svg>', '', $string);
            // remove html tags
            $string = RegEx::replace('</?[a-z][^>]*>', '', $string);
            // remove comments tags
            $string = RegEx::replace('<\!--.*?-->', '', $string);
        }

        if ($strip_spaces)
        {
            // Replace html spaces
            $string = str_replace(['&nbsp;', '&#160;'], ' ', $string);

            // Remove duplicate whitespace
            $string = RegEx::replace('[ \n\r\t]+', ' ', $string);
        }

        return trim($string);
    }

    /**
     * Creates an array of different syntaxes of titles to match against a url variable
     *
     * @param array $titles
     *
     * @return array
     */
    public static function getUrlMatches($titles = [])
    {
        $matches = [];

        foreach ($titles as $title)
        {
            $matches[] = $title;
            $matches[] = StringHelper::strtolower($title);
        }

        $matches = array_unique($matches);

        foreach ($matches as $title)
        {
            $matches[] = htmlspecialchars(StringHelper::html_entity_decoder($title));
        }

        $matches = array_unique($matches);

        foreach ($matches as $title)
        {
            $matches[] = urlencode($title);
            $matches[] = utf8_decode($title);
            $matches[] = str_replace(' ', '', $title);
            $matches[] = trim(RegEx::replace('[^a-z0-9]', '', $title));
            $matches[] = trim(RegEx::replace('[^a-z]', '', $title));
        }

        $matches = array_unique($matches);

        foreach ($matches as $i => $title)
        {
            $matches[$i] = trim(str_replace('?', '', $title));
        }

        $matches = array_diff(array_unique($matches), ['', '-']);

        return $matches;
    }
}

NexusLeads