// Je m'ennuie vraiment. J'ai soudainement eu un caprice et j'ai voulu réimplémenter certaines des fonctions encapsulées en PHP en utilisant PHP.
//Donc, le code suivant implémente principalement certaines fonctions de traitement de chaînes en PHP, et implémente également du PHP
// Non, mais les mêmes fonctions de traitement de chaînes sont également utiles. Ces mêmes fonctions peuvent également être implémentées dans d'autres langages.
// Maintenant, par exemple, en utilisant C/VBScript/Perl, etc., vous pouvez alors avoir votre propre bibliothèque de fonctions.
// Les fonctions suivantes ne s'exécuteront pas nécessairement correctement, elles sont uniquement destinées à l'apprentissage.
//
// S'il n'y a pas de déclaration spéciale, il s'agit uniquement d'une œuvre originale de heiyeluren. Veuillez conserver les informations sur l'auteur si vous souhaitez utiliser une fonction.
/**
* Reconstruction des fonctions de chaîne
*
* Copyright (c) 2005 heiyeluren < [email protected] >
* Auteur : heiyeluren < [email protected] >
* $Id : StringFunctions.php,v 0.1 et 2005-5-29 23:21 heiyeluren Exp $
**/
// {{{ strlen()
/**
* Compter la longueur de la chaîne
*
* @param string $str nécessite une variable de chaîne de longueur de nombre
* @return int renvoie le résultat du nombre
* @version v0.1
* @créer le 24/05/2005
* @modifié le 2005-5-24
* @auteur heiyeluren < [email protected] >
*/
fonction strlen1($str)
{
si ($str == '')
renvoie 0 ;
$compte = 0 ;
tandis que (1)
{
si ($str[$count] != NULL)
{
$compte++;
continuer;
}
autre
casser;
}
retourner $count ;
}
// }}}
// {{{ substr()
/**
* Obtenir une sous-chaîne
*
* @param string $str doit obtenir une variable de sous-chaîne
* @param int $start start obtenir une sous-chaîne
* @param int $length doit obtenir la longueur de la chaîne
* @return string renvoie une sous-chaîne
* @version v0.2
* @créer le 24/05/2005
* @modifié le 2005-5-25
* @auteur heiyeluren < [email protected] >
*/
fonction substr1($str, $start, $length=0)
{
si ($str == '')
retour;
si ($start > strlen($str))
retour;
if (($length != NULL) && ($start > 0) && ($length > strlen($str)-$start))
retour;
if (($length != NULL) && ($start < 0) && ($length > strlen($str)+$start))
retourner;
si ($longueur == NULL)
$longueur = (strlen($str) - $start);
si ($début < 0)
{
pour ($i=(strlen($str)+$start); $i<(strlen($str)+$start+$length); $i++)
{
$substr .= $str[$i];
}
}
si ($longueur > 0)
{
pour ($i=$start; $i<($start+$length); $i++)
{
$substr .= $str[$i];
}
}
si ($longueur < 0)
{
pour ($i=$start; $i<(strlen($str)+$length); $i++)
{
$substr .= $str[$i];
}
}
retourner $substr;
}
// }}}
// {{{ strrev()
/**
* Ordre des chaînes d'inversion
*
* @param string $str nécessite une variable de chaîne d'inversion
* @return chaîne d'inversion de chaîne
* @version v0.1 www.knowsky.com
* @créer le 24/05/2005
* @modifié le 2005-5-24
* @auteur heiyeluren < [email protected] >
*/
fonction strrev1($str)
{
si ($str == '')
renvoie 0 ;
pour ($i=(strlen($str)-1); $i>=0; $i--)
{
$rev_str .= $str[$i];
}
retourner $rev_str ;
}
// }}}
// {{{ strcmp()
/**
*Comparaison de chaînes
*
* @param string $s1 première chaîne
* @param string $s2 seconde chaîne
* @return int return -1,str1 < str2; return 1, str1 > str2, str1 = str2,
* renvoie 0, autre, renvoie faux
* @version v0.1
* @créer le 24/05/2005
* @modifié le 2005-5-24
* @auteur heiyeluren < [email protected] >
*/
fonction strcmp1($s1, $s2)
{
si (strlen($s1) < strlen($s2))
renvoie -1 ;
si (strlen($s1) > strlen($s2))
renvoie 1 ;
pour ($i=0 ; $i<strlen($s1); $i++)
{
si ($s1[$i] == $s2[$i])
continuer;
autre
renvoie faux ;
}
renvoie 0 ;
}
// }}}
// {{{ strchr(), strstr(), strpos()
/**
* Rechercher la première occurrence d'une chaîne
*
* @param chaîne $str chaîne parent
* @param string $substr doit correspondre à la sous-chaîne
* @return int return recherche la sous-chaîne à la chaîne parent en premier lieu,
* f pas trouvé, renvoie faux
* @version v0.4
* @créer le 24/05/2005
* @modifié le 29/05/2005
* @auteur heiyeluren < [email protected] >
*/
fonction strchr1($str, $substr)
{
$m = strlen($str);
$n = strlen($substr);
si ($m < $n)
renvoie false ;
pour ($i=0; $i<=($m-$n+1); $i++)
{
$sub = substr($str, $i, $n);
si (strcmp($sub, $substr) == 0)
retourner $i ;
}
renvoie faux ;
}
// }}}
// {{{ str_replace()
/**
* Remplacez toutes les occurrences de la chaîne de recherche par la chaîne de remplacement
*
* @param string $substr doit remplacer la variable de sous-chaîne
* @param string $newsubstr nouvelle sous-chaîne
* @param string $str exploite la chaîne parent
* @return string return replace après la nouvelle chaîne parent
* @version v0.2
* @créer le 24/05/2005
* @modifié le 29/05/2005
* @auteur heiyeluren < [email protected] >
*/
fonction str_replace1($substr, $newsubstr, $str)
{
$m = strlen($str);
$n = strlen($substr);
$x = strlen($newsubstr);
if (strchr($str, $substr) == false)
renvoie false ;
pour ($i=0; $i<=($m-$n+1); $i++)
{
$i = strchr($str, $substr);
$str = str_delete($str, $i, $n);
$str = str_insert($str, $i, $newstr);
}
retourner $ str ;
}
// }}}
/************ Les fonctions de traitement de chaînes suivantes ne sont pas disponibles en PHP. Je les ai écrites moi-même pour m'amuser ****************/
// {{. { insert_str(), delete_str(), index_str()
/**
* Fonctionnement de base des chaînes
*
* @param string $str doit obtenir une variable de sous-chaîne
* @param int $start start obtenir une sous-chaîne
* @param int $length doit obtenir la longueur de la chaîne
* @return string renvoie une sous-chaîne
* @version v0.1
* @créer le 24/05/2005
* @modifié le 2005-5-24
* @auteur heiyeluren < [email protected] >
*/
fonction str_insert($str, $i, $substr)
{
pour($j=0; $j<$i; $j++)
{
$startstr .= $str[$j];
}
pour ($j=$i; $j<strlen($str); $j++)
{
$laststr .= $str[$j];
}
$str = ($startstr. $substr. $laststr);
retourner $ str ;
}
fonction str_delete ($str, $i, $j)
{
pour ($c=0; $c<$i; $c++)
{
$startstr .= $str[$c];
}
pour ($c=($i+$j); $c<strlen($str); $c++)
{
$laststr .= $str[$c];
}
$str = ($startstr . $laststr);
return $str;
}
// }}}
// {{{ strcpy()
/**
* Utilisez désigner une sous-chaîne, remplacer la chaîne
*
* @param string $str doit obtenir une variable de sous-chaîne
* @param int $start start obtenir une sous-chaîne
* @param int $length doit obtenir la longueur de la chaîne
* @return string renvoie une sous-chaîne
* @version v0.1
* @créer le 27/05/2005
* @modifié le 2005-5-27
* @auteur heiyeluren < [email protected] >
*/
fonction strcpy($s1, $s2)
{
si (strlen($s1) == NULL)
retour;
si (!isset($s2))
retourner ;
pour ($i=0 ; $i<strlen($s1); $i++)
{
$s2[] = $s1[$i];
}
renvoie $s2 ;
}
// }}}
// {{{ strcat()
/**
* Utilisez désigner une sous-chaîne, remplacer la chaîne
*
* @param string $str doit obtenir une variable de sous-chaîne
* @param int $start start obtenir une sous-chaîne
* @param int $length doit obtenir la longueur de la chaîne
* @return string renvoie une sous-chaîne
* @version v0.1
* @créer le 27/05/2005
* @modifié le 2005-5-27
* @auteur heiyeluren < [email protected] >
*/
fonction strcat($s1, $s2)
{
si (!isset($s1))
retour;
si (!isset($s2))
return ;
$newstr = $s1 . $s2 ;
return $newstr ;
}
// }}}
// {{{ php_encode(), php_decode()
/**
* Fonction d'encodage/décodage de chaîne simple
*
* @param string $str nécessite une variable de chaîne de code/encodage
* @retourne le code de chaîne/encode après la chaîne
* @version v0.2
* @créer le 11/03/2005
* @modifié le 2005-5-24
* @auteur heiyeluren < [email protected] >
*/
/* Fonction d'encodage de chaîne */
fonction php_encode($str)
{
si ($str=='' && strlen($str)>128)
return false;
pour($i=0; $i<strlen($str); $i++)
{
$c = ord($str[$i]);
si ($c>31 && $c<107)
$c += 20 ;
si ($c>106 && $c<127)
$c -= 75 ;
$mot = chr($c);
$s .= $mot;
}
retourner $s ;
}
/* Fonction de décodage de chaîne */
fonction php_decode($str)
{
si ($str=='' && strlen($str)>128)
return false;
pour($i=0; $i<strlen($str); $i++)
{
$c = ord($mot);
si ($c>106 && $c<127)
$c = $c-20 ;
si ($c>31 && $c<107)
$c = $c+75 ;
$mot = chr($c);
$s .= $mot;
}
retourner $s ;
}
// }}}
// {{{ php_encrypt(), php_decrypt()
/**
* Fonction de cryptage/déchiffrement de chaîne simple
*
* @param string $str nécessite une variable de chaîne cryptée
* @return chaîne chiffrer/déchiffrer après la chaîne
* @version v0.1
* @créer le 27/05/2005
* @modifié le 29/05/2005
* @auteur heiyeluren < [email protected] >
*/
/* définir la clé de cryptage */
$encrypt_key = 'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key = 'ngzqtcobmuhelkpdawxfyivrsj2468021359'
/* Fonction de chiffrement de chaîne */
fonction php_encrypt($str)
{
global $encrypt_key, $decrypt_key;
if (strlen($str) == 0)
renvoie false ;
pour ($i=0; $i<strlen($str); $i++)
{
pour ($j=0; $j<strlen($encrypt_key); $j++)
{
si ($str[$i] == $encrypt_key[$j])
{
$enstr .= $decrypt_key[$j];
casser;
}
}
}
retourner $enstr;
}
/* Fonction de décryptage de chaîne */
fonction php_decrypt($str)
{
global $encrypt_key, $decrypt_key;
if (strlen($str) == 0)
renvoie false ;
pour ($i=0; $i<strlen($str); $i++)
{
pour ($j=0; $j<strlen($decrypt_key); $j++)
{
si ($str[$i] == $decrypt_key[$j])
{
$enstr .= $encrypt_key[$j];
casser;
}
}
}
retourner $enstr;
}
// }}}
Si le code n'est pas clair, il est recommandé de vérifier le lien qui est mon blog sur blogchina :