PHP项目开发中最常用的自定义函数整理

时间:2022-02-11 16:09:42
  1. <?php  
  2. //alert提示  
  3. function alert($msg){  
  4. echo "<script>alert('$msg');</script>";  
  5. }  
  6. //把一些预定义的字符转换为 HTML 实体  
  7. function d_htmlspecialchars($string) {  
  8. if(is_array($string)) {  
  9. foreach($string as $key => $val) {  
  10. $string[$key] = d_htmlspecialchars($val);  
  11. }  
  12. else {  
  13. $string = str_replace('&''&', $string);  
  14. $string = str_replace('"''"', $string);  
  15. $string = str_replace(''', ''', $string);  
  16. $string = str_replace('<''<', $string);  
  17. $string = str_replace('>''>', $string);  
  18. $string = preg_replace('/&(#\d;)/''&\1', $string);  
  19. }  
  20. return $string;  
  21. }  
  22. //在预定义字符前加上反斜杠,包括 单引号、双引号、反斜杠、NULL,以保护数据库安全  
  23. function d_addslashes($string, $force = 0) {  
  24. if(!$GLOBALS['magic_quotes_gpc'] || $force) {  
  25. if(is_array($string)) {  
  26. foreach($string as $key => $val) $string[$key] = d_addslashes($val, $force);  
  27. }  
  28. else $string = addslashes($string);  
  29. }  
  30. return $string;  
  31. }  
  32. //生成随机字符串,包含大写、小写字母、数字  
  33. function randstr($length) {  
  34. $hash = '';  
  35. $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';  
  36. $max = strlen($chars) - 1;  
  37. mt_srand((double)microtime() * 1000000);  
  38. for($i = 0; $i < $length; $i++) {  
  39. $hash .= $chars[mt_rand(0, $max)];  
  40. }  
  41. return $hash;  
  42. }  
  43. //转换时间戳为常用的日期格式  
  44. function trans_time($timestamp){  
  45. if($timestamp < 1) echo '无效的Unix时间戳';  
  46. else return date("Y-m-d H:i:s",$timestamp);  
  47. }  
  48. //获取IP  
  49. function get_ip() {  
  50. if ($_SERVER["HTTP_X_FORWARDED_FOR"])  
  51. $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];  
  52. else if ($_SERVER["HTTP_CLIENT_IP"])  
  53. $ip = $_SERVER["HTTP_CLIENT_IP"];  
  54. else if ($_SERVER["REMOTE_ADDR"])  
  55. $ip = $_SERVER["REMOTE_ADDR"];  
  56. else if (getenv("HTTP_X_FORWARDED_FOR"))  
  57. $ip = getenv("HTTP_X_FORWARDED_FOR");  
  58. else if (getenv("HTTP_CLIENT_IP"))  
  59. $ip = getenv("HTTP_CLIENT_IP");  
  60. else if (getenv("REMOTE_ADDR"))  
  61. $ip = getenv("REMOTE_ADDR");  
  62. else  
  63. $ip = "Unknown";  
  64. return $ip;  
  65. }  
  66. //计算时间差:默认返回类型为“分钟”  
  67. //$old_time 只能是时间戳,$return_type 为 h 是小时,为 s 是秒  
  68. function timelag($old_time,$return_type='m'){  
  69. if($old_time < 1){  
  70. echo '无效的Unix时间戳';  
  71. }else{  
  72. switch($return_type){  
  73. case 'h':  
  74. $type = 3600; break;  
  75. case 'm':  
  76. $type = 60; break;  
  77. case 's':  
  78. $type = 1; break;  
  79. case '':  
  80. $type = 60; break;  
  81. }  
  82. $dif = round( (time()-$old_time)/$type ) ;  
  83. return $dif;  
  84. }  
  85. }  
  86. //获取当前页面的URL地址  
  87. function url_this(){  
  88. $url = "http://".$_SERVER ["HTTP_HOST"].$_SERVER["REQUEST_URI"];  
  89. $return_url = "<a href='$url'>$url</a>";  
  90. return $return_url;  
  91. }  
  92. //跳转函数  
  93. function url_redirect($url,$delay=''){  
  94. if($delay == ''){  
  95. echo "<script>window.location.href='$url'</script>";  
  96. }else{  
  97. echo "<meta http-equiv='refresh' content='$delay;URL=$url' />";  
  98. }  
  99. }  
  100. //end func  
  101.  
  102. ?>