Login   Register  
PHP Classes
elePHPant
Icontem

File: classes/talkleet.class.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of David Ferreira  >  Talk Leet  >  classes/talkleet.class.php  >  Download  
File: classes/talkleet.class.php
Role: Class source
Content type: text/plain
Description: The class itself
Class: Talk Leet
Convert words to "leet" speak and vice-versa
Author: By
Last change:
Date: 6 years ago
Size: 4,630 bytes
 

Contents

Class file image Download
<?php
/**
 * @name Talk Leet
 * @version 1.0
 * @author David Sopas Ferreira <coder at davidsopas dot com>
 * @copyright 2008
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 * --------------------------
 * more at www.davidsopas.com
 * 
 */

class talkleet
{
    
/**
     * You can add more if you want, but remember to when adding on $original_letters, 
     * add also it's equivalent in $leet_letters array
     */
    
var $original_letters = array("a""e""the""s""S""A""o""O""t""l",
        
"ph""y""H""W""M""D""V""x");
    var 
$leet_letters = array("4""3""+eh""z""Z""4""0""0""+""1",
        
"f""j""|-|""\\/\\/""|\\/|""|)""\\/""><");

    
/**
     * shows rate or not (1 - show, 0 - doesnt show)
     */
    
var $showrate 1;

    var 
$result "";
    var 
$counter 0;

    
/**
     * You have more options to set on $err_rep, check http://php.net/manual/en/function.error-reporting.php
     */
    
var $err_rep E_ALL;

    
/**
     * Initialization of error reporting (__constructor)
     */
    
function Talkleet($disable_error_reporting true)
    {
        if (
$disable_error_reporting)
        {
            
$this->err_rep = @error_reporting(E_ERROR);
        } else
        {
            
$this->err_rep = @error_reporting();
        }
    }

    
/**
     * Encode normal text to leet text
     * @param $string
     * @return string
     */
    
function encode($string)
    {
        
$counter $this->counter++;
        for (
$i 0$i strlen($string); $i++)
        {
            
/**
             * $char keeps now the letter
             */
            
$char $string[$i];

            
/**
             * Condition to check if the letter is present in the array of the original words
             */
            
if (in_array($char$this->original_letters))
            {
                
/**
                 * It's present. Now we need the array key to use it on the leet array and grab the value from it
                 */
                
$searchletter_key array_search($char$this->original_letters);
                
$leet_convert str_replace($char$this->leet_letters[$searchletter_key], $char);
                
$counter++;
            } else
            {
                
/**
                 * If the letter it's not present it remains unchanged
                 */
                
$leet_convert $char;
            }
            
$result .= $leet_convert;
        }

        
/**
         * Removes spaces because they are not needed for counting chars for rateleet()
         */
        
$spaces_notcount str_replace(" """$string);
        
        
/**
         * Rate leet value is given by math third simple rule ( 100% x number of changed letters) / total letters
         */
        
$rate round((100 * ($counter-1)) / strlen($spaces_notcount), 0);

        
/**
         * Returns the result with optional leetness rate
         */
        
if ($this->showrate == 1)
            
$rate " (Leetness rate: " $rate "%)";
        elseif (
$this->showrate == 0)
            
$rate "";
        else
            
$rate "Option not available";

        
$result $result $rate;

        return 
$result;
    }

    
/**
     * Decode leet text to normal text
     * @param $string
     * @return string
     */
    
function decode($string)
    {
        
/**
         * Runs all over the string and replace any leet letters array match for original letters array 
         */
        
for ($key 0$key count($this->leet_letters); $key++)
        {
            
$string str_replace($this->leet_letters[$key], $this->original_letters[$key],
                
$string);
        }

        
$result $string;
        return 
$result;
    }

    
/**
     * Destroy the object
     */
    
function __destruct()
    {
        @
error_reporting($this->err_rep);
    }
}

?>