TestRegex.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: stanley-king
  5. * Date: 2017/5/19
  6. * Time: 下午2:00
  7. */
  8. class TestRegex extends PHPUnit_Framework_TestCase
  9. {
  10. public function testReserved()
  11. {
  12. $t = base64_encode('5');
  13. $regxp = '/([^=#]+=[^#]*)[#]?/i';
  14. $src='top=1#stars=3#desc=你好世界';
  15. $val = preg_match_all($regxp,$src,$match);
  16. if($val == false) return false;
  17. $result = [];
  18. if(count($match) == 2)
  19. {
  20. foreach($match[1] as $val)
  21. {
  22. $kv = preg_split('/=/',$val);
  23. if(!empty($kv))
  24. {
  25. $k = trim($kv[0]);
  26. $v = trim($kv[1]);
  27. if(!empty($k)) {
  28. $result[$k] = $v;
  29. }
  30. }
  31. }
  32. }
  33. }
  34. public function testArea()
  35. {
  36. $regxp = '/(\S+)[\s]*(\S+)*/u';
  37. $val = preg_match_all($regxp,'四川省 绵阳市',$match);
  38. }
  39. public function testBargainReserved()
  40. {
  41. $src = 'start=20180119 10:00:00#days=3#lowest=20#random=0#num=10';
  42. $result = explode("#",$src);
  43. $params = [];
  44. foreach($result as $val)
  45. {
  46. $kv = preg_split('/=/',$val);
  47. if(!empty($kv))
  48. {
  49. $k = trim($kv[0]);
  50. $v = trim($kv[1]);
  51. if(!empty($k))
  52. {
  53. if($k == 'days') {
  54. $params['usable_days'] = intval($v);
  55. }
  56. elseif($k == 'start') {
  57. $params['start'] = strtotime($v);
  58. }
  59. elseif($k == 'lowest') {
  60. $params['lowest_price'] = intval($v*100 + 0.5) / 100;
  61. }
  62. elseif($k == 'random') {
  63. $params['type'] = intval($v);
  64. }
  65. elseif($k == 'num') {
  66. $params['numbers'] = intval($v);
  67. }
  68. }
  69. }
  70. }
  71. return $params;
  72. }
  73. }