PHP Classes

File: classes/talkleet.class.php

Recommend this page to a friend!
  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: 16 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);
    }
}

?>