Apicloud的云推送api, php版

  1. class ApicloudPush
  2. {
  3. public static $api = 'https://p.apicloud.com/api/push/message';
  4. public static $appid = 'A6920463******';
  5. public static $appkey = 'C******8-B6BB-3027-2C93-6C********29';
  6. public static function post($post_data)
  7. {
  8. $appkey = sha1(self::$appid . "UZ" . self::$appkey . "UZ" . time()) . "." . time();
  9. $ch = curl_init ();
  10. curl_setopt ($ch, CURLOPT_HTTPHEADER, [
  11. 'X-APICloud-AppId:'. self::$appid,
  12. 'X-APICloud-AppKey:' . $appkey
  13. ]);
  14. curl_setopt($ch, CURLOPT_POST, count($post_data));
  15. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  16. curl_setopt($ch, CURLOPT_URL, self::$api);
  17. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
  18. ob_start ();
  19. curl_exec ($ch);
  20. $result = ob_get_contents ();
  21. ob_end_clean();
  22. curl_close ($ch);
  23. return $result;
  24. }
  25. }
  26. $title = isset($_GET['title']) ? $_GET['title'] : '测试标题';
  27. $content = isset($_GET['content']) ? $_GET['content'] : '测试内容';
  28. var_dump(ApicloudPush::post([
  29. 'title' => $title,
  30. 'content' => $content,
  31. 'type' => 2, //– 消息类型,1:消息 2:通知
  32. 'platform' => 0, //0:全部平台,1:ios, 2:android
  33. // 'groupName' => 'department', //推送组名,多个组用英文逗号隔开.默认:全部组。eg.group1,group2 .
  34. // 'userIds' => 'shuai' //推送用户id, 多个用户用英文逗号分隔,eg. user1,user2。
  35. ]));

angularjs的$http发送post请求

刚开始用angularjs的post方法时, 后台总是接收不到数据, 查了资料发现是因为angularjs的post提交方式和jquery的不一样, jquery默认就是模拟form提交数据, 而angularjs则使用的是 request payload, 所有使用$_POST是获取不到数据的, 解放方法:

  1. $http({
  2. url: url,
  3. method: 'post',
  4. headers: {
  5. 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
  6. },
  7. data: {
  8. order_id: orderId
  9. },
  10. transformRequest: function(obj) {
  11. var str = [];
  12. for (var p in obj) {
  13. str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
  14. }
  15. return str.join("&");
  16. }
  17. }).success(function(data, header, config, status) {
  18. // 正确返回
  19. }).error(function(data, header, config, status) {
  20. //处理响应失败
  21. });

写了个jquery的自动填充form插件

最近发现每次做后台编辑数据的时候, 给表单设置默认值都很麻烦, 这次干脆写了一个jquery插件, 直接自动填充表单, 省去php一个一个的写, 这样代码可读性也好了很多.

jquery.autofill.js

  1. jQuery.fn.extend({
  2. autofill: function (data) {
  3. if (!data || !$.isPlainObject(data)) {
  4. return;
  5. }
  6. for (var name in data) {
  7. if ($.isArray(data[name])) {
  8. var field = $('[name="' + name + '[]"]', this);
  9. field.each(function () {
  10. if (data[name].indexOf($(this).val()) >= 0) {
  11. $(this).attr('checked', 'checked');
  12. }
  13. });
  14. } else {
  15. var field = $('[name="' + name + '"]', this);
  16. field.each(function () {
  17. switch ($(this).attr('type')) {
  18. case 'radio':
  19. if ($(this).val() === data[name].toString()) {
  20. $(this).attr('checked', 'checked');
  21. }
  22. break;
  23. default:
  24. $(this).val(data[name]);
  25. break;
  26. }
  27. });
  28. }
  29. }
  30. }
  31. });

使用方法 ./test.php

  1. <!DOCTYPE HTML>
  2. <html lang="en-US">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <link href="css/bootstrap.css" rel="stylesheet" type="text/css"/>
  7. </head>
  8. <body>
  9. <div class="container">
  10. <form action="?" method="post" id="form">
  11. 姓名: <input type="text" name="name" id="" />
  12. <br />
  13. 年龄: <input type="number" name="age" id="" />
  14. <br />
  15. 性别:
  16. <input type="radio" name="sex" value="1" id="" />
  17. <input type="radio" name="sex" value="0" id="" />
  18. <br />
  19. 省份:
  20. <select name="area" id="">
  21. <option value="-1">选择省份</option>
  22. <option value="shanghai">上海</option>
  23. <option value="beijing">北京</option>
  24. <option value="henan">河南</option>
  25. </select>
  26. <br />
  27. 爱好:
  28. <input type="checkbox" name="hobby[]" value="book" id="" /> 看书
  29. <input type="checkbox" name="hobby[]" value="coding" id="" /> 写代码
  30. <input type="checkbox" name="hobby[]" value="games" id="" /> 打游戏<br />
  31. 简介:
  32. <textarea name="content"></textarea>
  33. <br />
  34. <input type="submit" value="提交" />
  35. </form>
  36. <!-- 这里是数据 -->
  37. <div class="hidden" id="data">
  38. <?php
  39. $data = [
  40. 'name' => 'shuai',
  41. 'age' => '25',
  42. 'area' => 'henan',
  43. 'sex' => 0,
  44. 'hobby' => ['book', 'games'],
  45. 'content' => 'hello world',
  46. ];
  47. echo json_encode($data);
  48. ?>
  49. </div>
  50. </div>
  51. <script src="jquery.min.js" type="text/javascript"></script>
  52. <script src="jquery.autofill.js" type="text/javascript"></script>
  53. <script type="text/javascript">
  54. $(function () {
  55. var data = $.parseJSON($('#data').text());
  56. $('#form').autofill(data);
  57. });
  58. </script>
  59. </body>
  60. </html>

访问