源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

使用php重新实现PHP脚本引擎内置函数

  • 时间:2020-01-27 20:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:使用php重新实现PHP脚本引擎内置函数
// 实在无聊,突发奇想,想把PHP里面部分已经提供封装好的函数重新使用PHP实现一遍,  // 于是便有了下面的代码主要实现了PHP中部分字符串处理函数,同时实现了一些PHP中  // 没有,但是同样有作用的字符串处理函数同样的这些函数,也能够使用其他语言来实   // 现,比如用C/VBScript/Perl等等,那么你就能够有一个自己的函数库.               // 以下函数不一定能够成功运行,只是为了学习而已。                              //                                                                            // 如果无特别声明,全部是由于heiyeluren原创,要使用任何函数都请保留作者信息     /**  * String Functions Reconstruct   *  * Copyright (c) 2005 heiyeluren <heiyeluren@163.com>  * Author: heiyeluren <heiyeluren@163.com>  * $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 <hyeiyeluren@163.com>  */ 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 <hyeiyeluren@163.com>  */ 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 < 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() /**  * 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 <hyeiyeluren@163.com>  */ 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; return 1, str1 > str2, str1 = str2,   *    return 0, other, return false  * @version v0.1  * @create 2005-5-24  * @modified 2005-5-24   * @author heiyeluren <hyeiyeluren@163.com>  */ function strcmp1($s1, $s2) {  if (strlen($s1) < strlen($s2))   return -1;  if (strlen($s1) > strlen($s2))   return 1;  for ($i=0; $i<strlen($s1); $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 <hyeiyeluren@163.com>  */ function strchr1($str, $substr) {  $m = strlen($str);  $n = strlen($substr);  if ($m < $n)   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 <hyeiyeluren@163.com>  */ 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 <hyeiyeluren@163.com>  */ function str_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; } function str_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() /**  * 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 <hyeiyeluren@163.com>  */ function strcpy($s1, $s2) {  if (strlen($s1) == NULL)   return;  if (!isset($s2))   return;  for ($i=0; $i<strlen($s1); $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 <hyeiyeluren@163.com>  */  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 <hyeiyeluren@163.com>  */ /* String encode function */ function php_encode($str) {  if ($str=='' && strlen($str)>128)   return false;  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;  } /* String decode function */ function php_decode($str) {  if ($str=='' && strlen($str)>128)   return false;  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() /**  * 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 <hyeiyeluren@163.com>  */ /* 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<strlen($str); $i++)  {   for ($j=0; $j<strlen($encrypt_key); $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<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
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部