// Estoy realmente aburrido. De repente tuve un capricho y quise volver a implementar algunas de las funciones encapsuladas en PHP usando PHP.
// Entonces, el siguiente código implementa principalmente algunas funciones de procesamiento de cadenas en PHP y también implementa algunas funciones de PHP
// No, pero las mismas funciones de procesamiento de cadenas también son útiles. Estas mismas funciones también se pueden implementar en otros lenguajes.
// Ahora, por ejemplo, usando C/VBScript/Perl, etc., entonces puedes tener tu propia biblioteca de funciones.
// Es posible que las siguientes funciones no necesariamente se ejecuten correctamente, son solo para aprender.
//
// Si no hay una declaración especial, es todo trabajo original de heiyeluren. Conserve la información del autor si desea utilizar alguna función.
/**
* Reconstrucción de funciones de cadena
*
* Copyright (c) 2005 heiyeluren < [email protected] >
* Autor: heiyeluren < [email protected] >
* $Id: StringFunctions.php,v 0.1 e 2005-5-29 23:21 heiyeluren Exp $
**/
// {{{ strlen()
/**
* Contar la longitud de la cadena
*
* @param string $str necesita contar la variable de cadena de longitud
* @return int resultado del recuento de devoluciones
* @versión v0.1
* @crear 2005-5-24
* @modificado el 24 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función strlen1($cadena)
{
si ($cadena == '')
devolver 0;
$cuenta = 0;
mientras (1)
{
si ($cadena[$cuenta] != NULL)
{
$cuenta++;
continuar;
}
demás
romper;
}
devolver $cuenta;
}
// }}}
// {{{ substr()
/**
* Obtener subcadena
*
* @param string $str necesita obtener la variable de subcadena
* @param int $start inicio obtener subcadena
* @param int $length necesita obtener la longitud de la cadena
* @return string devuelve subcadena
* @versión v0.2
* @crear 2005-5-24
* @modificado el 25 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función substr1($cadena, $inicio, $longitud=0)
{
si ($cadena == '')
devolver;
si ($inicio > strlen($cadena))
devolver;
if (($longitud!= NULL) && ($inicio > 0) && ($longitud > strlen($str)-$inicio))
devolver;
if (($longitud!= NULL) && ($inicio < 0) && ($longitud > strlen($str)+$inicio))
retorno
si ($longitud == NULL)
$longitud = (strlen($str) - $inicio);
si ($inicio < 0)
{
para ($i=(cadena($cadena)+$inicio); $i<(cadena($cadena)+$inicio+$longitud); $i++)
{
$subcadena .= $cadena[$i];
}
}
si ($longitud > 0)
{
para ($i=$inicio; $i<($inicio+$longitud); $i++)
{
$subcadena .= $cadena[$i];
}
}
si ($longitud < 0)
{
para ($i=$inicio; $i<(strlen($str)+$longitud); $i++)
{
$subcadena .= $cadena[$i];
}
}
devolver $substr;
}
// }}}
// {{{ strrev()
/**
* Orden de cadena invertido
*
* @param string $str necesita variable de cadena de inversión
* @return cadena de inversión de cadena
* @versión v0.1 www.knowsky.com
* @crear 2005-5-24
* @modificado el 24 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función strrev1($cadena)
{
si ($cadena == '')
devolver 0;
para ($i=(strlen($str)-1); $i>=0; $i--)
{
$rev_str .= $cadena[$i];
}
devolver $rev_str;
}
// }}}
// {{{ strcmp()
/**
* Comparación de cadenas
*
* @param cadena $s1 primera cadena
* @param cadena $s2 segunda cadena
* @return int retorno -1,cadena1 <cadena2 devuelve 1,cadena1 >cadena2,cadena1 = cadena2,
* devuelve 0, otro, devuelve falso
* @versión v0.1
* @crear 2005-5-24
* @modificado el 24 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función strcmp1($s1, $s2)
{
si (stren ($s1) < strlen ($s2))
devolver -1;
si (stren($s1) > strlen($s2))
devolver 1;
para ($i=0; $i<strlen($s1); $i++)
{
si ($s1[$i] == $s2[$i])
continuar;
demás
devolver falso;
}
devolver 0;
}
// }}}
// {{{ strchr(), strstr(), strpos()
/**
* Encuentra la primera aparición de una cadena.
*
* @param cadena $str cadena principal
* @param string $substr necesita coincidir con la subcadena
* @return int return busca la subcadena en el primer lugar de la cadena principal,
* Si no lo encuentra, devuelve falso
* @versión v0.4
* @crear 2005-5-24
* @modificado el 29 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función strchr1 ($cadena, $subcadena)
{
$m = strlen($cadena);
$n = strlen($substr);
si ($m < $n)
devolver falso;
para ($i=0; $i<=($m-$n+1); $i++)
{
$sub = substr($cadena, $i, $n);
si (strcmp($sub, $substr) == 0)
devolver $i;
}
devolver falso;
}
// }}}
// {{{ str_replace()
/**
* Reemplace todas las apariciones de la cadena de búsqueda con la cadena de reemplazo
*
* @param string $substr necesita reemplazar la variable de subcadena
* @param string $newsubstr nueva subcadena
* @param cadena $str operar cadena principal
* @return string devuelve reemplazo después de la nueva cadena principal
* @versión v0.2
* @crear 2005-5-24
* @modificado el 29 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función str_replace1($subcadena, $nuevasubcadena, $cadena)
{
$m = strlen($cadena);
$n = strlen($substr);
$x = strlen($newsubstr);
if (strchr($cadena, $substr) == falso)
devolver falso;
para ($i=0; $i<=($m-$n+1); $i++)
{
$i = strchr($cadena, $subcadena);
$cadena = str_delete($cadena, $i, $n);
$cadena = str_insert($cadena, $i, $noticias);
}
devolver $cadena;
}
// }}}
/************ Las siguientes funciones de procesamiento de cadenas no están disponibles en PHP. Las escribí yo mismo por diversión **************/
// {{. {insertar_cadena(), eliminar_cadena(), index_cadena()
/**
* Operación de cadena básica
*
* @param string $str necesita obtener la variable de subcadena
* @param int $start inicio obtener subcadena
* @param int $length necesita obtener la longitud de la cadena
* @return string devuelve subcadena
* @versión v0.1
* @crear 2005-5-24
* @modificado el 24 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función str_insert($cadena, $i, $subcadena)
{
para($j=0; $j<$i; $j++)
{
$cadenainicio .= $cadena[$j];
}
para ($j=$i; $j<strlen($str); $j++)
{
$última cadena .= $cadena[$j];
}
$cadena = ($cadenainicial. $subcadena. $últimacadena);
devolver $cadena;
}
función str_delete($cadena, $i, $j)
{
para ($c=0; $c<$i; $c++)
{
$cadenainicio .= $cadena[$c];
}
para ($c=($i+$j); $c<strlen($str); $c++)
{
$última cadena .= $cadena[$c];
}
$cadena = ($cadenainicio. $últimacadena);
return $cadena;
}
// }}}
// {{{ strcpy()
/**
* Utilice designar subcadena para reemplazar cadena
*
* @param string $str necesita obtener la variable de subcadena
* @param int $start inicio obtener subcadena
* @param int $length necesita obtener la longitud de la cadena
* @return string devuelve subcadena
* @versión v0.1
* @crear 2005-5-27
* @modificado el 27 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función strcpy($s1, $s2)
{
si (stren($s1) == NULL)
devolver;
si (!isset($s2))
retorno;
para ($i=0; $i<strlen($s1); $i++)
{
$s2[] = $s1[$i];
}
devolver $s2;
}
// }}}
// {{{ strcat()
/**
* Utilice designar subcadena para reemplazar cadena
*
* @param string $str necesita obtener la variable de subcadena
* @param int $start inicio obtener subcadena
* @param int $length necesita obtener la longitud de la cadena
* @return string devuelve subcadena
* @versión v0.1
* @crear 2005-5-27
* @modificado el 27 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
función strcat($s1, $s2)
{
si (!isset($s1))
devolver;
si (!isset($s2))
devolver;
$cadenanoticias = $s1 $s2;
devuelve $cadenanoticias;
}
// }}}
// {{{ php_encode(), php_decode()
/**
* Función de codificación/decodificación de cadenas simples
*
* @param string $str necesita código/codificar variable de cadena
* @return código de cadena/codificación después de la cadena
* @versión v0.2
* @crear 2005-3-11
* @modificado el 24 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
/* Función de codificación de cadena */
función php_encode($cadena)
{
si ($cadena=='' && cadena($cadena)>128)
devolver falso;
para($i=0; $i<strlen($str); $i++)
{
$c = orden($cadena[$i]);
si ($c>31 && $c<107)
$c += 20;
si ($c>106 && $c<127)
$c -= 75;
$palabra = chr($c);
$s .= $palabra;
}
devolver $s;
}
/* Función de decodificación de cadenas */
función php_decode($cadena)
{
si ($cadena=='' && cadena($cadena)>128)
devolver falso;
para($i=0; $i<strlen($str); $i++)
{
$c = orden($palabra);
si ($c>106 && $c<127)
$c = $c-20;
si ($c>31 && $c<107)
$c = $c+75;
$palabra = chr($c);
$s .= $palabra;
}
devolver $s;
}
// }}}
// {{{ php_encrypt(), php_decrypt()
/**
* Función de cifrado/descifrado de cadena simple
*
* @param string $str necesita variable de cadena crypt
* @return cadena cifrar/descifrar después de la cadena
* @versión v0.1
* @crear 2005-5-27
* @modificado el 29 de mayo de 2005
* @autor heiyeluren < [email protected] >
*/
/* definir clave de cripta */
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'
/* Función de cifrado de cadena */
función php_encrypt($cadena)
{
global $encrypt_key, $decrypt_key
si (strlen($str) == 0)
devolver falso;
para ($i=0; $i<cadena($cadena); $i++)
{
para ($j=0; $j<strlen($encrypt_key); $j++)
{
si ($cadena[$i] == $clave_cifrada[$j])
{
$enstr .= $decrypt_key[$j];
romper;
}
}
}
devolver $entr;
}
/* Función de descifrado de cadena */
función php_decrypt($cadena)
{
global $encrypt_key, $decrypt_key
si (strlen($str) == 0)
devolver falso;
para ($i=0; $i<cadena($cadena); $i++)
{
para ($j=0; $j<strlen($decrypt_key); $j++)
{
si ($cadena[$i] == $decrypt_key[$j])
{
$enstr .= $encrypt_key[$j];
romper;
}
}
}
devolver $entr;
}
// }}}
Si el código no está claro, se recomienda consultar el enlace, que es mi blog en blogchina: