You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

jsonp.php 861 B

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace Kuxin\Helper;
  3. use Kuxin\Config;
  4. use Kuxin\Input;
  5. /**
  6. * Class Jsonp
  7. *
  8. * @package Kuxin\Helper
  9. * @author Pakey <pakey@qq.com>
  10. */
  11. class Jsonp
  12. {
  13. /**
  14. * @param $data
  15. * @param int $format
  16. * @return string
  17. */
  18. public static function encode($data, $format = JSON_UNESCAPED_UNICODE)
  19. {
  20. $callback = Input::get(Config::get('jsonp_callback'), 'en', 'ptcms_jsonp');
  21. return $callback . '(' . json_encode($data, $format) . ');';
  22. }
  23. /**
  24. * @param $data
  25. * @param bool $assoc
  26. * @return mixed|null
  27. */
  28. public static function decode($data, $assoc = true)
  29. {
  30. if (strpos($data, '(')) {
  31. $data = explode('(', substr($data, 0, -2), 2)[1];
  32. return json_decode($data, $assoc);
  33. } else {
  34. return null;
  35. }
  36. }
  37. }