使用php重新实现PHP脚本引擎内置函数
使用php重新实现PHP脚本引擎内置函数
发布时间:2016-12-29 来源:查字典编辑
摘要://实在无聊,突发奇想,想把PHP里面部分已经提供封装好的函数重新使用PHP实现一遍,//于是便有了下面的代码主要实现了PHP中部分字符串处...

//实在无聊,突发奇想,想把PHP里面部分已经提供封装好的函数重新使用PHP实现一遍,

//于是便有了下面的代码主要实现了PHP中部分字符串处理函数,同时实现了一些PHP中

//没有,但是同样有作用的字符串处理函数同样的这些函数,也能够使用其他语言来实

//现,比如用C/VBScript/Perl等等,那么你就能够有一个自己的函数库.

//以下函数不一定能够成功运行,只是为了学习而已。

//

//如果无特别声明,全部是由于heiyeluren原创,要使用任何函数都请保留作者信息

/**

*StringFunctionsReconstruct

*

*Copyright(c)2005heiyeluren<heiyeluren@163.com>

*Author:heiyeluren<heiyeluren@163.com>

*$Id:StringFunctions.php,v0.1e2005-5-2923:21heiyelurenExp$

**/

//{{{strlen()

/**

*Countstringlength

*

*@paramstring$strneedcountlengthstringvariable

*@returnintreturncountresult

*@versionv0.1

*@create2005-5-24

*@modified2005-5-24

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstrlen1($str)

{

if($str=='')

return0;

$count=0;

while(1)

{

if($str[$count]!=NULL)

{

$count++;

continue;

}

else

break;

}

return$count;

}

//}}}

//{{{substr()

/**

*Getsubstring

*

*@paramstring$strneedgetsubstringvariable

*@paramint$startstartgetsubstring

*@paramint$lengthneedgetstringlength

*@returnstringreturnsubstring

*@versionv0.2

*@create2005-5-24

*@modified2005-5-25

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionsubstr1($str,$start,$length=0)

{

if($str=='')

return;

if($start>strlen($str))

return;

if(($length!=NULL)&&($start>0)&&($length>strlen($str)-$start))

return;

if(($length!=NULL)&&($start<0)&&($length>strlen($str)+$start))

return;

if($length==NULL)

$length=(strlen($str)-$start);

if($start<0)

{

for($i=(strlen($str)+$start);$i<(strlen($str)+$start+$length);$i++)

{

$substr.=$str[$i];

}

}

if($length>0)

{

for($i=$start;$i<($start+$length);$i++)

{

$substr.=$str[$i];

}

}

if($length<0)

{

for($i=$start;$i<(strlen($str)+$length);$i++)

{

$substr.=$str[$i];

}

}

return$substr;

}

//}}}

//{{{strrev()

/**

*Reversalstringorder

*

*@paramstring$strneedreversalstringvariable

*@returnstringreversalstring

*@versionv0.1

*@create2005-5-24

*@modified2005-5-24

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstrrev1($str)

{

if($str=='')

return0;

for($i=(strlen($str)-1);$i>=0;$i--)

{

$rev_str.=$str[$i];

}

return$rev_str;

}

//}}}

//{{{strcmp()

/**

*Stringcomparison

*

*@paramstring$s1firststring

*@paramstring$s2secondstring

*@returnintreturn-1,str1<str2;return1,str1>str2,str1=str2,

*return0,other,returnfalse

*@versionv0.1

*@create2005-5-24

*@modified2005-5-24

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstrcmp1($s1,$s2)

{

if(strlen($s1)<strlen($s2))

return-1;

if(strlen($s1)>strlen($s2))

return1;

for($i=0;$i<strlen($s1);$i++)

{

if($s1[$i]==$s2[$i])

continue;

else

returnfalse;

}

return0;

}

//}}}

//{{{strchr(),strstr(),strpos()

/**

*Findfirstoccurrenceofastring

*

*@paramstring$strparentstring

*@paramstring$substrneedmatchsubstring

*@returnintreturnfindsubstringatparentstringfirstplace,

*fnotfind,returnfalse

*@versionv0.4

*@create2005-5-24

*@modified2005-5-29

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstrchr1($str,$substr)

{

$m=strlen($str);

$n=strlen($substr);

if($m<$n)

returnfalse;

for($i=0;$i<=($m-$n+1);$i++)

{

$sub=substr($str,$i,$n);

if(strcmp($sub,$substr)==0)

return$i;

}

returnfalse;

}

//}}}

//{{{str_replace()

/**

*Replacealloccurrencesofthesearchstringwiththereplacementstring

*

*@paramstring$substrneedreplacesubstringvariable

*@paramstring$newsubstrnewsubstring

*@paramstring$stroperateparentstring

*@returnstringreturnreplaceafternewparentstring

*@versionv0.2

*@create2005-5-24

*@modified2005-5-29

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstr_replace1($substr,$newsubstr,$str)

{

$m=strlen($str);

$n=strlen($substr);

$x=strlen($newsubstr);

if(strchr($str,$substr)==false)

returnfalse;

for($i=0;$i<=($m-$n+1);$i++)

{

$i=strchr($str,$substr);

$str=str_delete($str,$i,$n);

$str=str_insert($str,$i,$newstr);

}

return$str;

}

//}}}

/************以下串处理函数是PHP中没有的,自己写着玩***************/

//{{{insert_str(),delete_str(),index_str()

/**

*Basicstringoperate

*

*@paramstring$strneedgetsubstringvariable

*@paramint$startstartgetsubstring

*@paramint$lengthneedgetstringlength

*@returnstringreturnsubstring

*@versionv0.1

*@create2005-5-24

*@modified2005-5-24

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstr_insert($str,$i,$substr)

{

for($j=0;$j<$i;$j++)

{

$startstr.=$str[$j];

}

for($j=$i;$j<strlen($str);$j++)

{

$laststr.=$str[$j];

}

$str=($startstr.$substr.$laststr);

return$str;

}

functionstr_delete($str,$i,$j)

{

for($c=0;$c<$i;$c++)

{

$startstr.=$str[$c];

}

for($c=($i+$j);$c<strlen($str);$c++)

{

$laststr.=$str[$c];

}

$str=($startstr.$laststr);

return$str;

}

//}}}

//{{{strcpy()

/**

*Usedesignatesubstringreplacestring

*

*@paramstring$strneedgetsubstringvariable

*@paramint$startstartgetsubstring

*@paramint$lengthneedgetstringlength

*@returnstringreturnsubstring

*@versionv0.1

*@create2005-5-27

*@modified2005-5-27

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstrcpy($s1,$s2)

{

if(strlen($s1)==NULL)

return;

if(!isset($s2))

return;

for($i=0;$i<strlen($s1);$i++)

{

$s2[]=$s1[$i];

}

return$s2;

}

//}}}

//{{{strcat()

/**

*Usedesignatesubstringreplacestring

*

*@paramstring$strneedgetsubstringvariable

*@paramint$startstartgetsubstring

*@paramint$lengthneedgetstringlength

*@returnstringreturnsubstring

*@versionv0.1

*@create2005-5-27

*@modified2005-5-27

*@authorheiyeluren<hyeiyeluren@163.com>

*/

functionstrcat($s1,$s2)

{

if(!isset($s1))

return;

if(!isset($s2))

return;

$newstr=$s1.$s2;

return$newsstr;

}

//}}}

//{{{php_encode(),php_decode()

/**

*Simplestringencode/decodefunction

*

*@paramstring$strneedcode/encodestringvariable

*@returnstringcode/encodeafterstring

*@versionv0.2

*@create2005-3-11

*@modified2005-5-24

*@authorheiyeluren<hyeiyeluren@163.com>

*/

/*Stringencodefunction*/

functionphp_encode($str)

{

if($str==''&&strlen($str)>128)

returnfalse;

for($i=0;$i<strlen($str);$i++)

{

$c=ord($str[$i]);

if($c>31&&$c<107)

$c+=20;

if($c>106&&$c<127)

$c-=75;

$word=chr($c);

$s.=$word;

}

return$s;

}

/*Stringdecodefunction*/

functionphp_decode($str)

{

if($str==''&&strlen($str)>128)

returnfalse;

for($i=0;$i<strlen($str);$i++)

{

$c=ord($word);

if($c>106&&$c<127)

$c=$c-20;

if($c>31&&$c<107)

$c=$c+75;

$word=chr($c);

$s.=$word;

}

return$s;

}

//}}}

//{{{php_encrypt(),php_decrypt()

/**

*Simplestringencrypt/decryptfunction

*

*@paramstring$strneedcryptstringvariable

*@returnstringencrypt/decryptafterstring

*@versionv0.1

*@create2005-5-27

*@modified2005-5-29

*@authorheiyeluren<hyeiyeluren@163.com>

*/

/*definecryptkey*/

$encrypt_key='abcdefghijklmnopqrstuvwxyz1234567890';

$decrypt_key='ngzqtcobmuhelkpdawxfyivrsj2468021359';

/*Stringencryptfunction*/

functionphp_encrypt($str)

{

global$encrypt_key,$decrypt_key;

if(strlen($str)==0)

returnfalse;

for($i=0;$i<strlen($str);$i++)

{

for($j=0;$j<strlen($encrypt_key);$j++)

{

if($str[$i]==$encrypt_key[$j])

{

$enstr.=$decrypt_key[$j];

break;

}

}

}

return$enstr;

}

/*Stringdecryptfunction*/

functionphp_decrypt($str)

{

global$encrypt_key,$decrypt_key;

if(strlen($str)==0)

returnfalse;

for($i=0;$i<strlen($str);$i++)

{

for($j=0;$j<strlen($decrypt_key);$j++)

{

if($str[$i]==$decrypt_key[$j])

{

$enstr.=$encrypt_key[$j];

break;

}

}

}

return$enstr;

}

//}}}

如果代码不清晰的话,建议查看一下连接,是我在blogchina的博客:

http://heiyeluren.blogchina.com/1741318.html

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类