Short.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace Qii\Request\Url;
  3. class Short extends Base implements Intf
  4. {
  5. public function __construct($mode)
  6. {
  7. parent::__construct($mode);
  8. }
  9. /**
  10. * 只匹配URI中的内容
  11. *
  12. * @param $params
  13. * @return array|void
  14. * @throws \Qii\Exceptions\Unsupported
  15. */
  16. public function parseURI($params) {
  17. $this->checkMode($this->_mode);
  18. if ($params == '') return;
  19. $params = ltrim($params, "/");
  20. $argvArray = explode("/", $params);
  21. $data = array();
  22. if (is_array($argvArray)) {
  23. foreach ($argvArray AS $arg) {
  24. $data[] = $arg;
  25. }
  26. }
  27. return $data;
  28. }
  29. /**
  30. * 解析uri获取参数 => 值
  31. * @param string $params uri
  32. * @return array
  33. */
  34. public function parseArgs($params)
  35. {
  36. $this->checkMode($this->_mode);
  37. if ($params == '') return;
  38. $data = $this->parseURI($params);
  39. foreach ($_GET AS $key => $val) {
  40. $data[$key] = $val;
  41. }
  42. return $data;
  43. }
  44. /**
  45. * 获取指定参数的值
  46. * @param array $urlArray 参数集合
  47. * @param string $k 指定参数
  48. */
  49. public function decodeArgs($urlArray, $k = '')
  50. {
  51. $this->checkMode($this->_mode);
  52. if (!empty($k)) return $urlArray[$k] == 'NULL' || $urlArray[$k] == null ? '' : $urlArray[$k];
  53. return $urlArray;
  54. }
  55. }