PHP Classes
Icontem

File: classes/talkleet.class.php


  Search   All class groups All class groups   Latest entries Latest entries   Top 10 charts Top 10 charts   Newsletter Newsletter   Blog Blog   Forums Forums   Help FAQ Help FAQ  
  Login   Register  
Recommend this page to a friend! ReTweet ReTweet Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of David Ferreira  >  Talk Leet  >  classes/talkleet.class.php  
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
 

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);
    }
}

?>

 
  Advertise on this site Advertise on this site   Site map Site map   Statistics Statistics   Site tips Site tips   Privacy policy Privacy policy   Contact Contact  

For more information send a message to :
info at phpclasses dot org.
Copyright (c) Icontem 1999-2009 PHP Classes - PHP Class Scripts
  PHP Book Reviews - Reviews of books and other products