ie php脚本引擎,使用php重新实现PHP脚本引擎内置函数
使用php重新實現PHP腳本引擎內置函數
//?實在無聊,突發奇想,想把PHP里面部分已經提供封裝好的函數重新使用PHP實現一遍,
//?于是便有了下面的代碼主要實現了PHP中部分字符串處理函數,同時實現了一些PHP中
//?沒有,但是同樣有作用的字符串處理函數同樣的這些函數,也能夠使用其他語言來實
//?現,比如用C/VBScript/Perl等等,那么你就能夠有一個自己的函數庫.
//?以下函數不一定能夠成功運行,只是為了學習而已。
//
//?如果無特別聲明,全部是由于heiyeluren原創,要使用任何函數都請保留作者信息
/**
*?String?Functions?Reconstruct
*
*?Copyright?(c)?2005?heiyeluren?
*?Author:?heiyeluren?
*?$Id:?StringFunctions.php,v?0.1?e?2005-5-29?23:21?heiyeluren?Exp?$
**/
//?{{{?strlen()
/**
*?Count?string?length
*
*?@param?string?$str?need?count?length?string?variable
*?@return?int????return?count?result
*?@version?v0.1
*?@create?2005-5-24
*?@modified?2005-5-24
*?@author?heiyeluren?
*/
function?strlen1($str)
{
if?($str?==?'')
return?0;
$count?=?0;
while?(1)
{
if?($str[$count]?!=?NULL)
{
$count++;
continue;
}
else
break;
}
return?$count;
}
//?}}}
//?{{{?substr()
/**
*?Get?sub?string
*
*?@param?string?$str?need?get?sub?string?variable
*?@param?int??$start?start?get?sub?string
*?@param?int??$length?need?get?string?length
*?@return?string???return?sub?string
*?@version?v0.2
*?@create?2005-5-24
*?@modified?2005-5-25
*?@author?heiyeluren?
*/
function?substr1($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??strlen($str)+$start))
return;
if?($length?==?NULL)
$length?=?(strlen($str)?-?$start);
if?($start?
{
for?($i=(strlen($str)+$start);?$i
{
$substr?.=?$str[$i];
}
}
if?($length?>?0)
{
for?($i=$start;?$i
{
$substr?.=?$str[$i];
}
}
if?($length?
{
for?($i=$start;?$i
{
$substr?.=?$str[$i];
}
}
return?$substr;
}
//?}}}
//?{{{?strrev()
/**
*?Reversal?string?order
*
*?@param?string?$str?need?reversal?string?variable
*?@return?string???reversal?string
*?@version?v0.1
*?@create?2005-5-24
*?@modified?2005-5-24
*?@author?heiyeluren?
*/
function?strrev1($str)
{
if?($str?==?'')
return?0;
for?($i=(strlen($str)-1);?$i>=0;?$i--)
{
$rev_str?.=?$str[$i];
}
return?$rev_str;
}
//?}}}
//?{{{?strcmp()
/**
*?String?comparison
*
*?@param?string?$s1?first?string
*?@param?string?$s2?second?string
*?@return?int??return?-1,str1??str2,?str1?=?str2,
*????return?0,?other,?return?false
*?@version?v0.1
*?@create?2005-5-24
*?@modified?2005-5-24
*?@author?heiyeluren?
*/
function?strcmp1($s1,?$s2)
{
if?(strlen($s1)?
return?-1;
if?(strlen($s1)?>?strlen($s2))
return?1;
for?($i=0;?$i
{
if?($s1[$i]?==?$s2[$i])
continue;
else
return?false;
}
return?0;
}
//?}}}
//?{{{?strchr(),?strstr(),?strpos()
/**
*?Find?first?occurrence?of?a?string
*
*?@param?string?$str?parent?string
*?@param?string?$substr?need?match?sub?string
*?@return?int??return?find?sub?string?at?parent?string?first?place,
*????f?not?find,?return?false
*?@version?v0.4
*?@create?2005-5-24
*?@modified?2005-5-29
*?@author?heiyeluren?
*/
function?strchr1($str,?$substr)
{
$m?=?strlen($str);
$n?=?strlen($substr);
if?($m?
return?false;
for?($i=0;?$i<=($m-$n+1);?$i++)
{
$sub?=?substr($str,?$i,?$n);
if?(strcmp($sub,?$substr)?==?0)
return?$i;
}
return?false;
}
//?}}}
//?{{{?str_replace()
/**
*?Replace?all?occurrences?of?the?search?string?with?the?replacement?string
*
*?@param?string?$substr??need?replace?sub?string?variable
*?@param?string?$newsubstr?new?sub?string
*?@param?string?$str??operate?parent?string
*?@return?string???return?replace?after?new?parent?string
*?@version?v0.2
*?@create?2005-5-24
*?@modified?2005-5-29
*?@author?heiyeluren?
*/
function?str_replace1($substr,?$newsubstr,?$str)
{
$m?=?strlen($str);
$n?=?strlen($substr);
$x?=?strlen($newsubstr);
if?(strchr($str,?$substr)?==?false)
return?false;
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()
/**
*?Basic?string?operate
*
*?@param?string?$str?need?get?sub?string?variable
*?@param?int??$start?start?get?sub?string
*?@param?int??$length?need?get?string?length
*?@return?string??return?sub?string
*?@version?v0.1
*?@create?2005-5-24
*?@modified?2005-5-24
*?@author?heiyeluren?
*/
function?str_insert($str,?$i,?$substr)
{
for($j=0;?$j
{
$startstr?.=?$str[$j];
}
for?($j=$i;?$j
{
$laststr?.=?$str[$j];
}
$str?=?($startstr?.?$substr?.?$laststr);
return?$str;
}
function?str_delete($str,?$i,?$j)
{
for?($c=0;?$c
{
$startstr?.=?$str[$c];
}
for?($c=($i+$j);?$c
{
$laststr?.=?$str[$c];
}
$str?=?($startstr?.?$laststr);
return?$str;
}
//?}}}
//?{{{?strcpy()
/**
*?Use?designate?sub?string??replace?string
*
*?@param?string?$str?need?get?sub?string?variable
*?@param?int??$start?start?get?sub?string
*?@param?int??$length?need?get?string?length
*?@return?string??return?sub?string
*?@version?v0.1
*?@create?2005-5-27
*?@modified?2005-5-27
*?@author?heiyeluren?
*/
function?strcpy($s1,?$s2)
{
if?(strlen($s1)?==?NULL)
return;
if?(!isset($s2))
return;
for?($i=0;?$i
{
$s2[]?=?$s1[$i];
}
return?$s2;
}
//?}}}
//?{{{?strcat()
/**
*?Use?designate?sub?string??replace?string
*
*?@param?string?$str?need?get?sub?string?variable
*?@param?int??$start?start?get?sub?string
*?@param?int??$length?need?get?string?length
*?@return?string??return?sub?string
*?@version?v0.1
*?@create?2005-5-27
*?@modified?2005-5-27
*?@author??heiyeluren?
*/
function?strcat($s1,?$s2)
{
if?(!isset($s1))
return;
if?(!isset($s2))
return;
$newstr?=?$s1?.?$s2;
return?$newsstr;
}
//?}}}
//?{{{?php_encode(),?php_decode()
/**
*?Simple?string?encode/decode?function
*
*?@param?string?$str?need?code/encode?string?variable
*?@return?string??code/encode?after?string
*?@version?v0.2
*?@create?2005-3-11
*?@modified?2005-5-24
*?@author?heiyeluren?
*/
/*?String?encode?function?*/
function?php_encode($str)
{
if?($str==''?&&?strlen($str)>128)
return?false;
for($i=0;?$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;
}
/*?String?decode?function?*/
function?php_decode($str)
{
if?($str==''?&&?strlen($str)>128)
return?false;
for($i=0;?$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()
/**
*?Simple?string?encrypt/decrypt?function
*
*?@param?string?$str?need?crypt?string?variable
*?@return?string??encrypt/decrypt?after?string
*?@version?v0.1
*?@create?2005-5-27
*?@modified?2005-5-29
*?@author?heiyeluren?
*/
/*?define?crypt?key?*/
$encrypt_key?=?'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key?=?'ngzqtcobmuhelkpdawxfyivrsj2468021359';
/*?String?encrypt?function?*/
function?php_encrypt($str)
{
global?$encrypt_key,?$decrypt_key;
if?(strlen($str)?==?0)
return?false;
for?($i=0;?$i
{
for?($j=0;?$j
{
if?($str[$i]?==?$encrypt_key[$j])
{
$enstr?.=?$decrypt_key[$j];
break;
}
}
}
return?$enstr;
}
/*?String?decrypt?function?*/
function?php_decrypt($str)
{
global?$encrypt_key,?$decrypt_key;
if?(strlen($str)?==?0)
return?false;
for?($i=0;?$i
{
for?($j=0;?$j
{
if?($str[$i]?==?$decrypt_key[$j])
{
$enstr?.=?$encrypt_key[$j];
break;
}
}
}
return?$enstr;
}
//?}}}
如果代碼不清晰的話,建議查看一下連接,是我在blogchina的博客:
http://heiyeluren.blogchina.com/1741318.html
本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴
本文系統來源:php中文網
TAG標簽:腳本
總結
以上是生活随笔為你收集整理的ie php脚本引擎,使用php重新实现PHP脚本引擎内置函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java jxl创建多个sheet,使用
- 下一篇: matlab 调用opencv,matl