// Estou realmente entediado. De repente tive um capricho e queria reimplementar algumas das funções encapsuladas em PHP usando PHP.
//Portanto, o código a seguir implementa principalmente algumas funções de processamento de string em PHP e também implementa algumas funções de PHP
// Não, mas as mesmas funções de processamento de strings também são úteis. Essas mesmas funções também podem ser implementadas em outras linguagens.
// Agora, por exemplo, usando C/VBScript/Perl, etc., você pode ter sua própria biblioteca de funções.
// As funções a seguir podem não necessariamente ser executadas com sucesso, elas são apenas para aprendizado.
//
// Se não houver nenhuma declaração especial, é tudo trabalho original de heiyeluren. Por favor, guarde as informações do autor se quiser usar qualquer função.
/**
* Reconstrução de funções de string
*
* 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 o comprimento da string
*
* @param string $str precisa de variável de string de comprimento de contagem
* @return int resultado da contagem de retorno
*@versão v0.1
* @criar 24/05/2005
* @modificado em 24/05/2005
* @autor heiyeluren < [email protected] >
*/
função strlen1($str)
{
se ($str == '')
retornar 0;
$contagem = 0;
enquanto (1)
{
if ($str[$count] != NULO)
{
$contar++;
continuar;
}
outro
quebrar;
}
retornar $contar;
}
// }}}
// {{{ substr()
/**
* Obtenha substring
*
* @param string $str precisa obter a variável substring
* @param int $start start obtém substring
* @param int $length precisa obter o comprimento da string
* @return string retorna substring
* @versão v0.2
* @criar 24/05/2005
* @modificado em 25/05/2005
* @autor heiyeluren < [email protected] >
*/
função substr1($str, $início, $comprimento=0)
{
se ($str == '')
retornar;
if ($start > strlen($str))
retornar;
if (($length != NULL) && ($start > 0) && ($length > strlen($str)-$start))
retornar;
if (($length != NULL) && ($start < 0) && ($length > strlen($str)+$start))
retornar;
se ($ comprimento == NULO)
$comprimento = (strlen($str) - $início);
if ($início < 0)
{
for ($i=(strlen($str)+$start); $i<(strlen($str)+$start+$length); $i++)
{
$substr.= $str[$i];
}
}
if ($comprimento > 0)
{
para ($i=$início; $i<($início+$comprimento); $i++)
{
$substr.= $str[$i];
}
}
if ($comprimento < 0)
{
para ($i=$início; $i<(strlen($str)+$comprimento); $i++)
{
$substr.= $str[$i];
}
}
return $substr;
}
// }}}
// {{{strrev()
/**
* Ordem de string de reversão
*
* @param string $str precisa de variável de string de reversão
* @return string de reversão de string
* @versão v0.1 www.knowsky.com
* @criar 24/05/2005
* @modificado em 24/05/2005
* @autor heiyeluren < [email protected] >
*/
função strrev1($str)
{
se ($str == '')
retornar 0;
para ($i=(strlen($str)-1); $i>=0; $i--)
{
$rev_str.= $str[$i];
}
retornar $rev_str;
}
// }}}
// {{{ strcmp()
/**
*Comparação de strings
*
* @param string $s1 primeira string
* @param string $s2 segunda string
* @return int return -1,str1 < str2 retornar 1, str1 > str2, str1 = str2,
* retorna 0, outro, retorna falso
*@versão v0.1
* @criar 24/05/2005
* @modificado em 24/05/2005
* @autor heiyeluren < [email protected] >
*/
função strcmp1($s1, $s2)
{
if (strlen($s1) < strlen($s2))
retornar -1;
if (strlen($s1) > strlen($s2))
retornar 1;
para ($i=0; $i<strlen($s1); $i++)
{
se ($s1[$i] == $s2[$i])
continuar;
outro
retornar falso;
}
retornar 0;
}
// }}}
// {{{ strchr(), strstr(), strpos()
/**
* Encontre a primeira ocorrência de uma string
*
* @param string $str string pai
* @param string $substr precisa corresponder à substring
* @return int return encontra a substring na string pai em primeiro lugar,
*f não encontrar, retorne falso
*@versão v0.4
* @criar 24/05/2005
* @modificado em 29/05/2005
* @autor heiyeluren < [email protected] >
*/
função strchr1($str, $substr)
{
$m = strlen($str);
$n = strlen($substr)
;
retornar falso
para ($i=0; $i<=($m-$n+1); $i++)
{
$sub = substr($str, $i, $n);
if (strcmp($sub, $substr) == 0)
retornar $i;
}
retornar falso;
}
// }}}
// {{{str_replace()
/**
* Substitua todas as ocorrências da string de pesquisa pela string de substituição
*
* @param string $substr precisa substituir a variável de substring
* @param string $newsubstr nova substring
* @param string $str opera string pai
* @return string retorna substituição após nova string pai
* @versão v0.2
* @criar 24/05/2005
* @modificado em 29/05/2005
* @autor heiyeluren < [email protected] >
*/
função str_replace1($substr, $newsubstr, $str)
{
$m = strlen($str);
$n = strlen($substr);
$x = strlen($newsubstr);
if (strchr($str, $substr) == falso)
retornar falso
para ($i=0; $i<=($m-$n+1); $i++)
{
$i = strchr($str, $substr);
$str = str_delete($str, $i, $n);
$str = str_insert($str, $i, $newstr);
}
retornar $str;
}
// }}}
/************ As seguintes funções de processamento de strings não estão disponíveis no PHP. Eu mesmo as escrevi por diversão ***************/
// {{. { insert_str(), delete_str(), index_str()
/**
* Operação básica de string
*
* @param string $str precisa obter a variável substring
* @param int $start start obtém substring
* @param int $length precisa obter o comprimento da string
* @return string retorna substring
*@versão v0.1
* @criar 24/05/2005
* @modificado em 24/05/2005
* @autor heiyeluren < [email protected] >
*/
função str_insert($str, $i, $substr)
{
para($j=0; $j<$i; $j++)
{
$startstr.= $str[$j];
}
para ($j=$i; $j<strlen($str); $j++)
{
$últimastr.= $str[$j];
}
$str = ($startstr. $substr. $laststr);
retornar $str;
}
função str_delete($str, $i, $j)
{
para ($c=0; $c<$i; $c++)
{
$startstr.= $str[$c];
}
para ($c=($i+$j); $c<strlen($str); $c++)
{
$últimastr.= $str[$c];
}
$str = ($startstr. $laststr)
;
}
// }}}
// {{{strcpy()
/**
* Use designar substring para substituir string
*
* @param string $str precisa obter a variável substring
* @param int $start start obtém substring
* @param int $length precisa obter o comprimento da string
* @return string retorna substring
*@versão v0.1
* @criar 27/05/2005
* @modificado em 27/05/2005
* @autor heiyeluren < [email protected] >
*/
função strcpy($s1, $s2)
{
if (strlen($s1) == NULO)
retornar;
se (!isset($s2))
retornar
para ($i=0; $i<strlen($s1); $i++)
{
$s2[] = $s1[$i];
}
retornar$s2;
}
// }}}
// {{{strcat()
/**
* Use designar substring para substituir string
*
* @param string $str precisa obter a variável substring
* @param int $start start obtém substring
* @param int $length precisa obter o comprimento da string
* @return string retorna substring
*@versão v0.1
* @criar 27/05/2005
* @modificado em 27/05/2005
* @autor heiyeluren < [email protected] >
*/
função strcat($s1, $s2)
{
se (!isset($s1))
retornar;
se (!isset($s2))
retornar
$
s1 .
}
// }}}
// {{{ php_encode(), php_decode()
/**
* Função simples de codificação/decodificação de string
*
* @param string $str precisa de variável de string de código/codificação
* @return string código/codificação após string
* @versão v0.2
* @criar 11/03/2005
* @modificado em 24/05/2005
* @autor heiyeluren < [email protected] >
*/
/* Função de codificação de string */
função php_encode($str)
{
if ($str=='' && strlen($str)>128)
retornar falso
para($i=0; $i<strlen($str); $i++)
{
$c = ordem($str[$i]);
se ($c>31 && $c<107)
$c += 20;
se ($c>106 && $c<127)
$c -= 75;
$palavra = chr($c)
;
}
retornar $s;
}
/* Função de decodificação de string */
função php_decode($str)
{
if ($str=='' && strlen($str)>128)
retornar falso
para($i=0; $i<strlen($str); $i++)
{
$c = ordem($palavra);
se ($c>106 && $c<127)
$c = $c-20;
se ($c>31 && $c<107)
$c = $c+75;
$palavra = chr($c)
;
}
retornar $s;
}
// }}}
// {{{ php_encrypt(), php_decrypt()
/**
* Função simples de criptografar/descriptografar string
*
* @param string $str precisa de variável de string criptografada
* @return string criptografa/descriptografa após string
*@versão v0.1
* @criar 27/05/2005
* @modificado em 29/05/2005
* @autor heiyeluren < [email protected] >
*/
/* definir chave de criptografia */
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359';
/* Função de criptografia de string */
função php_encrypt($str)
{
global $encrypt_key, $decrypt_key;
se (strlen($str) == 0)
retornar falso
para ($i=0; $i<strlen($str); $i++)
{
para ($j=0; $j<strlen($encrypt_key); $j++)
{
if ($str[$i] == $encrypt_key[$j])
{
$enstr.= $decrypt_key[$j];
quebrar;
}
}
}
return $enstr;
}
/* Função de descriptografia de string */
função php_decrypt($str)
{
global $encrypt_key, $decrypt_key;
se (strlen($str) == 0)
retornar falso
para ($i=0; $i<strlen($str); $i++)
{
para ($j=0; $j<strlen($decrypt_key); $j++)
{
if ($str[$i] == $decrypt_key[$j])
{
$enstr.= $encrypt_key[$j];
quebrar;
}
}
}
return $enstr;
}
// }}}
Caso o código não esteja claro, é recomendável verificar o link, que é meu blog na blogchina: