Utils.class.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. include_once(__DIR__."/error.inc.php");
  3. class Utils {
  4. static public function notEmptyStr($var)
  5. {
  6. return is_string($var) && ($var != "");
  7. }
  8. static public function checkNotEmptyStr($var, $name)
  9. {
  10. if (!self::notEmptyStr($var))
  11. throw new ParameterError($name . " can not be empty string");
  12. }
  13. static public function checkIsUInt($var, $name)
  14. {
  15. if (!(is_int($var) && $var >= 0))
  16. throw new ParameterError($name . " need unsigned int");
  17. }
  18. static public function checkNotEmptyArray($var, $name)
  19. {
  20. if (!is_array($var) || count($var) == 0) {
  21. throw new ParameterError($name . " can not be empty array");
  22. }
  23. }
  24. static public function setIfNotNull($var, $name, &$args)
  25. {
  26. if (!is_null($var)) {
  27. $args[$name] = $var;
  28. }
  29. }
  30. static public function arrayGet($array, $key, $default=null)
  31. {
  32. if (array_key_exists($key, $array))
  33. return $array[$key];
  34. return $default;
  35. }
  36. /**
  37. * 数组 转 对象
  38. *
  39. * @param array $arr 数组
  40. * @return object
  41. */
  42. function Array2Object($arr) {
  43. if (gettype($arr) != 'array') {
  44. return;
  45. }
  46. foreach ($arr as $k => $v) {
  47. if (gettype($v) == 'array' || getType($v) == 'object') {
  48. $arr[$k] = (object)self::Array2Object($v);
  49. }
  50. }
  51. return (object)$arr;
  52. }
  53. /**
  54. * 对象 转 数组
  55. *
  56. * @param object $obj 对象
  57. * @return array
  58. */
  59. function Object2Array($object) {
  60. if (is_object($object) || is_array($object)) {
  61. $array = array();
  62. foreach ($object as $key => $value) {
  63. if ($value == null) continue;
  64. $array[$key] = self::Object2Array($value);
  65. }
  66. return $array;
  67. }
  68. else {
  69. return $object;
  70. }
  71. }
  72. //数组转XML
  73. function Array2Xml($rootName, $arr)
  74. {
  75. $xml = "<".$rootName.">";
  76. foreach ($arr as $key=>$val) {
  77. if (is_numeric($val)) {
  78. $xml.="<".$key.">".$val."</".$key.">";
  79. } else {
  80. $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
  81. }
  82. }
  83. $xml.="</".$rootName.">";
  84. return $xml;
  85. }
  86. //将XML转为array
  87. function Xml2Array($xml)
  88. {
  89. //禁止引用外部xml实体
  90. libxml_disable_entity_loader(true);
  91. $values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
  92. return $values;
  93. }
  94. } // class Utils