Login   Register  
PHP Classes
elePHPant
Icontem

File: StringObscure.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Max Udaskin  >  String Obscure  >  StringObscure.php  >  Download  
File: StringObscure.php
Role: Class source
Content type: text/plain
Description: Obscures strings
Class: String Obscure
Obfuscate text strings by changing some characters
Author: By
Last change: Added feature to prevent null $obscure_char.
Date: 2011-04-19 00:02
Size: 4,125 bytes
 

Contents

Class file image Download
<?php
class StringObscure
{
    
/**
     * Obscure String
     * Takes a string and changes some characters to obscure it
     * @param string $string // The string to obscure
     * @param int $num_to_obscure The number of characters in the string to obscure
     * @param string $obscure_char The string to obscure with (can be more than one character long)
     */
    
function obscure($string$num_to_obscure = -1$obscure_char '*')
    {
        if(empty(
$obscure_char)) // Prevent $obscure_char from being empty
             
$obscure_char '*';

        if(
$num_to_obscure == -1) { // If there is no input for the amount of characters to obscure
            
$num_to_obscure round(strlen($string) / 2); // Obscure half of the characters
        
}
        
        if(
$num_to_obscure strlen($string)) { // Make sure that the number to obscure is no greater than the length of the string
            
$num_to_obscure strlen($string);
        }
         
        
$string preg_split('//'$string, -1PREG_SPLIT_NO_EMPTY); // Split string into array
        
$obscured = array();
         
        for(
$i 0$i $num_to_obscure$i++) { // Obscure characters
            
do {
                
$rand rand(0count($string));
            } while (
array_key_exists($rand$obscured));
             
            
$string[$rand] = $obscure_char// Obscure specific character
            
$obscured[$rand] = true// Create key
        
}
         
        return 
implode(''$string);
    }
    
    
/**
     * Obscure String w/Percentage
     * Takes a string and changes some characters to obscure it using a percentage of the string length
     * @param string $string // The string to obscure
     * @param int $pct_to_obscure The percentage of characters in the string to obscure
     * @param string $obscure_char The string to obscure with (can be more than one character long)
     */
    
function obscurePercentage($string$pct_to_obscure = -1$obscure_char '*')
    {
        if(empty(
$obscure_char)) // Prevent $obscure_char from being empty
             
$obscure_char '*';

        if(
$pct_to_obscure == -1) { // If there is no input for the amount of characters to obscure
            
$num_to_obscure round(strlen($string) / 2); // Obscure half of the characters
        
} else {
            if(
$pct_to_obscure 100) { // Make sure that the percentage is 100% or less
                
$pct_to_obscure 100;
            } else {
                if(
$pct_to_obscure 0) { // Make sure that the percentage is 0% or greater
                    
$pct_to_obscure 0;
                }
            }
            
$pct_to_obscure $pct_to_obscure 100// Turn the percentage into a decimal
            
$num_to_obscure round(strlen($string) * $pct_to_obscure); // Calculate the number of characters to be obscured
        
}
         
        
$string preg_split('//'$string, -1PREG_SPLIT_NO_EMPTY); // Split string into array
        
$obscured = array();
         
        for(
$i 0$i $num_to_obscure$i++) { // Obscure characters
            
do {
                
$rand rand(0count($string));
            } while (
array_key_exists($rand$obscured));
             
            
$string[$rand] = $obscure_char// Obscure specific character
            
$obscured[$rand] = true// Create key
        
}
         
        return 
implode(''$string);
    }
}

// Examples


$str 'Random String to be obscured...';

echo 
'String before obscuring: ' $str// Outputs string, unaltered
echo 'String after obscuring: ' stringObscure::obscure($str); // Outputs string with half of the characters obscured
echo 'String after obscuring: ' stringObscure::obscure($str10); // Outputs string with ten of the characters obscured
echo 'String after obscuring: ' stringObscure::obscure($str7'-'); // Outputs string with seven of the characters changed to -
echo 'String after obscuring: ' stringObscure::obscurePercentage($str25); // Outputs string with 25 percent of the characters obscured