2013年5月29日星期三

微信公众平台消息接口开发(1)-官方的Demo有问题



本系列教程以微信公众平台应用妈妈助手(账号mmhelper:发送食物名称或拼音首字母查询孕妇、坐月子、宝宝能不能吃哪些食物。发送自己的位置查询附近的母婴类商家,以及促销、团购等信息。发送与宝宝的合照测试与宝宝的脸部相似度)为例,讲解微信接口开发过程。欢迎大家关注该账号,二维码见底部图。

使用前提条件:拥有一个公网上的HTTP服务器主机空间,具有创建目录、上传文件等权限。推荐新浪的SAE。http://sae.sina.com.cn/
首先请注册微信公众平台的账号,注册地址:http://mp.weixin.qq.com/
本教程主要讲解接口的开发流程。
官方的文档非常简洁:http://mp.weixin.qq.com/cgi-bin/indexpage?t=wxm-callbackapi-doc&lang=zh_CN
事例代码也跑不通。我研究了一番,终于搞定。方法如下:
一、写好接口程序
在你的服务器上上传好一个接口程序文件,如http://www.yourdomain.com/weixin.php  内容如下:


<?php
define("TOKEN", "weixin");//自己定义的token 就是个通信的私钥
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
//$wechatObj->responseMsg();
class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }
    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            <FuncFlag>0<FuncFlag>
            </xml>";
            if(!empty( $keyword ))
            {
                $msgType = "text";
                $contentStr = '你好啊,屌丝';
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                echo $resultStr;
            }else{
                echo '咋不说哈呢';
            }
        }else {
            echo '咋不说哈呢';
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $token =TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}
    ?>

二、配置微信公众平台回复接口
设置回复接口,填好URL和Token(url填上面的http://www.yourdomain.com/weixin.php,token必须跟上面程序里面定义的Token一致)


三、验证接口
用自己的个人微信关注下你的公众账号,给这个账号发一条消息过去,收到原样的消息返回,即验证成功了。
四、开始自定义回复
注释掉$wechatObj->valid(); 这行,同时去掉//$wechatObj->responseMsg();这行的注释。
你可以修改responseMsg函数里面的代码,根据用户的消息类型('text','image','location')和消息内容来回复用户不同的内容。
消息接口就可以使用了,发个消息试试看吧?

微信公众平台消息接口开发(2)-封装weixin.class.php


一、封装weixin.class.php

由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理。

我们就考虑在这个基础上做一次封装,weixin.class.php,代码如下:


<?php
class Weixin
{
    public $token = '';//token
    public $debug =  false;//是否debug的状态标示,方便我们在调试的时候记录一些中间数据
    public $setFlag = false;
    public $msgtype = 'text';   //('text','image','location')
    public $msg = array();

    public function __construct($token,$debug)
    {
        $this->token = $token;
        $this->debug = $debug;
    }     //获得用户发过来的消息(消息内容和消息类型 
    public function getMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if ($this->debug) {
                        $this->write_log($postStr);
        }
        if (!empty($postStr)) {
            $this->msg = (array)simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $this->msgtype = strtolower($this->msg['MsgType']);
        }
    }     //回复文本消息
    public function makeText($text='')
    {
        $CreateTime = time();
        $FuncFlag = $this->setFlag ? 1 : 0;
        $textTpl = "<xml>
            <ToUserName><![CDATA[{$this->msg['FromUserName']}]]></ToUserName>
            <FromUserName><![CDATA[{$this->msg['ToUserName']}]]></FromUserName>
            <CreateTime>{$CreateTime}</CreateTime>
            <MsgType><![CDATA[text]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            <FuncFlag>%s</FuncFlag>
            </xml>";
        return sprintf($textTpl,$text,$FuncFlag);
    }     //根据数组参数回复图文消息
    public function makeNews($newsData=array())
    {
        $CreateTime = time();
        $FuncFlag = $this->setFlag ? 1 : 0;
        $newTplHeader = "<xml>
            <ToUserName><![CDATA[{$this->msg['FromUserName']}]]></ToUserName>
            <FromUserName><![CDATA[{$this->msg['ToUserName']}]]></FromUserName>
            <CreateTime>{$CreateTime}</CreateTime>
            <MsgType><![CDATA[news]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            <ArticleCount>%s</ArticleCount><Articles>";
        $newTplItem = "<item>
            <Title><![CDATA[%s]]></Title>
            <Description><![CDATA[%s]]></Description>
            <PicUrl><![CDATA[%s]]></PicUrl>
            <Url><![CDATA[%s]]></Url>
            </item>";
        $newTplFoot = "</Articles>
            <FuncFlag>%s</FuncFlag>
            </xml>";
        $Content = '';
        $itemsCount = count($newsData['items']);
        $itemsCount = $itemsCount < 10 ? $itemsCount : 10;//微信公众平台图文回复的消息一次最多10
        if ($itemsCount) {
            foreach ($newsData['items'] as $key => $item) {
                if ($key<=9) {
                    $Content .= sprintf($newTplItem,$item['title'],$item['description'],$item['picurl'],$item['url']);
                }
            }
        }
        $header = sprintf($newTplHeader,$newsData['content'],$itemsCount);
        $footer = sprintf($newTplFoot,$FuncFlag);
        return $header . $Content . $footer;
    }
    public function reply($data)
    {
        if ($this->debug) {
                    $this->write_log($data);
        }
        echo $data;
    }
    public function valid()
    {
        if ($this->checkSignature()) {
            if( $_SERVER['REQUEST_METHOD']=='GET' )
            {
                echo $_GET['echostr'];
                exit;
            }
        }else{
            write_log('认证失败');
            exit;
        }
    }
    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $tmpArr = array($this->token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }    private function write_log($log){       //这里是你记录调试信息的地方  请自行完善   以便中间调试    }
}
?>
 二、调用weixin.class.php

把你的微信公众平台主接口文件(如前面定义的http://www.yourdomain.com/weixin.php)中,修改代码为:

include_once('weixin.class.php');//引用刚定义的微信消息处理类define("TOKEN", "mmhelper");define('DEBUG', true);
$weixin = new Weixin(TOKEN,DEBUG);//实例化
$weixin->getMsg();
$type = $weixin->msgtype;//消息类型
$username = $weixin->msg['FromUserName'];//哪个用户给你发的消息,这个$username是微信加密之后的,但是每个用户都是一一对应的
if ($type==='text') {
    if ($weixin->msg['Content']=='Hello2BizUser') {//微信用户第一次关注你的账号的时候,你的公众账号就会受到一条内容为'Hello2BizUser'的消息
        $reply = $weixin->makeText('欢迎你关注妈妈助手哦,屌丝');
    }else{//这里就是用户输入了文本信息
        $keyword = $weixin->msg['Content'];   //用户的文本消息内容
                include_once("chaxun.php");//文本消息 调用查询程序 
                $chaxun= new chaxun(DEBUG,$keyword,$username);
                $results['items'] =$chaxun->search();//查询的代码
            
                $reply = $weixin->makeNews($results);
    }
}elseif ($type==='location') {
      //用户发送的是位置信息  稍后的文章中会处理                 
}elseif ($type==='image') {
      //用户发送的是图片 稍后的文章中会处理
}elseif ($type==='voice') {    
      //用户发送的是声音 稍后的文章中会处理
}
$weixin->reply($reply);


 三、查询代码

还需要将数据库里面的查询结果格式化为特定的形式



public function search(){
       $record=array();  //定义返回结果的数组
       $list = $this->search($this->keyword);//普通的根据关键词查询数据库的操作  代码就不用分享了
    if(is_array($list)&&!empty($list)){                
               foreach($list as $msg){
                $record[]=array(//以下代码,将数据库中查询返回的数组格式化为微信返回消息能接收的数组形式,即titledescriptionpicurlurl 详见微信官方的文档描述
                    'title' =>$msg['title'],
                    'description' =>$msg['discription'],
                    'picurl' => $msg['pic_url'],
                    'url' =>$msg['url']
                );        }    }    return $record;}

洛洛带你在SAE上零基础玩转微信公众平台消息接口


前不久微信公众平台开放了自定义消息接口,这给广大微友们带来了一个新的机会,自定义消息接口说简单了就是在原有200条规则上的无限扩增,说复杂了他就是一个万能接口,没有做不到只有想不到。Ps:微信消息发送到微博上去~

要使用此接口开发,就需要有个域名和空间,SAE刚好有二级域名和空间使用,于是申请了个http://zero.sinaapp.com/

对于完全没有接触过SAE的同学,下面我来告诉大家如何去快速的使用SAE~
1.打开新浪云SAE网址
http://sae.sina.com.cn/

2.点击右上角的登录
3.使用新浪微博进行登录

4.返回我的首页

5.点右侧创建新应用


6.填写应用信息

7.完成应用创建后,我们就有了一个二级域名和一个空间。

接下来,我们下载官方的提供的demo,修改demo中的token值,然后传到SAE上,传完后,我们到公众平台填写接口配置信息,进行网址接入的验证。
WX官方demo如下,已经修改了那个符号错误。
PHP代码
<?php
/**
  * wechat php test
  */
//define your token
define("TOKEN", "wxapi");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
    public function valid()
  {
    $echoStr = $_GET["echostr"];
    //valid signature , option
    if($this->checkSignature()){
      echo $echoStr;
      exit;
    }
  }
     
    private function checkSignature()
    {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];  
       
      $token = TOKEN;
      $tmpArr = array($token, $timestamp, $nonce);
      sort($tmpArr);
      $tmpStr = implode( $tmpArr );
      $tmpStr = sha1( $tmpStr );
     
      if( $tmpStr == $signature ){
        return true;
      }else{
        return false;
      }
    }
}
?>
通过验证后我们就可以开始进行消息接口的开发了,消息接口我们要做的就是获取粉丝的信息然后按照获取到的信息进行匹配,匹配出信息再发给粉丝。
通过三个例子从不会到会~对应了我三周每周的学习成果。

第一个最简单的例子,就是实现了,粉丝发送消息到公众平台返回粉丝的的消息。
微信请添加演示号码:weijiekou

代码如下:
PHP代码
<?php
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!emptyempty($postStr)){
    $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $keyword = trim($postObj->Content);
    $time = time();
    $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            <FuncFlag>0<FuncFlag>
            </xml>";
    if(!emptyempty( $keyword )){
      $msgType = "text";
      $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$keyword);
      echo $resultStr;
    }else{
      echo "Input something...";
    }
}else {
    echo "";
    exit;
}
?>

第二个是实现了微友查天气预报,可发送地区名称、电话区号、邮政编码、城市拼音到公众平台就可返回天气预报。如:北京,返回对应的天气预报。(由于是演示,天气预报数据使用了weather.com.cn的数据方便大家测试,测试后请删除。)

微信请添加演示号码:tianqi114



代码如下:
PHP代码
<?php
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!emptyempty($postStr)){
    $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $keyword = trim($postObj->Content);
    $time = time();
    $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            <FuncFlag>0<FuncFlag>
            </xml>";
    if(!emptyempty( $keyword )){
      $msgType = "text";
      $post_data = array();
      $post_data['city'] = $keyword;
      $post_data['submit'] = "submit";
      $url='http://search.weather.com.cn/wap/search.php';
      $o="";
      foreach ($post_data as $k=>$v){
        $o.= "$k=".urlencode($v)."&";
      }
      $post_data=substr($o,0,-1);
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL,$url);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
      $result = curl_exec($ch);
      curl_close($ch);
      $result=explode('/',$result);
      $result=explode('.',$result['5']);
      $citynum = $result['0'];
      $weatherurl = "http://m.weather.com.cn/data/".$citynum.".html";
      $weatherjson = file_get_contents($weatherurl);
      $weatherarray = json_decode($weatherjson,true);
      $weatherinfo = $weatherarray['weatherinfo'];
      $contentTpl = "#这里是%s#(%s)
%s%s
%s时发布的天气预报:
今天天气:%s
%s,%s
穿衣指数:%s
紫外线指数:%s
洗车指数:%s
明天天气:%s
%s,%s
后天天气:%s
%s,%s";
      $contentStr = sprintf($contentTpl,$weatherinfo['city'],$weatherinfo['city_en'],$weatherinfo['date_y'],$weatherinfo['week'],$weatherinfo['fchh'],$weatherinfo['temp1'],$weatherinfo['weather1'],$weatherinfo['wind1'],$weatherinfo['index_d'],$weatherinfo['index_uv'],$weatherinfo['index_xc'],$weatherinfo['temp2'],$weatherinfo['weather2'],$weatherinfo['wind2'],$weatherinfo['temp3'],$weatherinfo['weather3'],$weatherinfo['wind3']);
      $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
      echo $resultStr;
    }else{
      echo "Input something...";
    }
}else {
    echo "";
    exit;
}
?>
第三个就是实现了无限消息回复

请添加演示微信:xianhouyu

教你怎样提高跑步速度


掌握正确的跑步姿势,不仅仅可以让你避免运动受伤,同时也能够有效的提升你的跑步速度。最近巴西对16个富有经验的跑步运动员进行研究,看运行力学是怎样影响他们跑步速度的。研究人员发现,快步伐,较少的身躯移动,自由移动手臂和肩膀可以很好的保持跑步者的速度,同时避免受伤,保持体力。
  比赛的时候如果两个运动员的实力相当,那么跑步节奏较好的那一个有90%赢的几率。可以试试以下三个简单的动作来提高你的跑步速度。只有正确的姿势才能让你跑得快,效率高,而且不易受伤。
  稍微迈高脚步
  优秀的运动员平均一分钟能跑180步,他们迈的脚步总是比较高而且很快很轻。
  迈步的时候膝盖用力前摆,可以防止身体移位。保持每一步的力度可以加强臀部的屈肌,助你跑得更快,更有爆发力。
  身体不要摇摆晃动
  跑步的时候尽可能的不要让你的身体和头上下左右的晃动,这样会消耗你更多的体力。为了预防晃动,你可以让你的眼睛注视前方距你100米~200米之远的目的点,这样可以保持你直线前进。
  手臂的姿势要正确
  自然趋势会显得跑步运动员很僵硬,对跑步一点益处都没有。摆臂应是以肩为轴,左右动作幅度不超过身体正中线,肩部适当放松,避免含胸。
本文发布于力动网(转载请保留)

板鞋、运动鞋、跑鞋、休闲鞋之间的区别



板鞋是平地式板式的鞋。它来自玩滑板的人穿的鞋。板鞋跟一般鞋子比较,不同于几乎都是平底,便于让脚能完全平贴在滑板上,而且有防震的功能.还有它的侧面有加强。
板鞋是平地式板式的鞋。它来自玩滑板的人穿的鞋。板鞋跟一般鞋子比较,不同于几乎都是平底,便于让脚能完全平贴在滑板上,而且有防震的功能.还有它的侧面有加强。
运动鞋是根据人们参加运动或旅游的特点设计制造的,强调鞋子的功能性。鞋底和普通皮鞋、胶鞋不同,一般都是柔软而富有弹性的.能起一定的缓冲作用。也能增强弹性,有的还能防止脚裸受伤。所以,在进行体育运动时,大都要穿运动鞋。
跑鞋最透气,适合夏天穿。跑鞋注重鞋头的加强,两侧无加强,所以不能参加球类运动(球类运动有较多的侧滑动作)
网球鞋和训练鞋是最相似的,透气性亚于跑鞋,但是通常鞋头和两侧都有加强。前脚掌的柔软程度和易弯折程度不如跑鞋,但优于板鞋。
休闲鞋范围很广,不好说,在品牌男鞋招商企业中得知板鞋属于休闲鞋的一种,一般是鞋侧一圈360度加强的,通常是缝线加强,这是为了满足篮球运动的需要(板鞋源于复古篮球鞋),鞋面较硬,中底也比较硬,不适合剧烈运动,中底比较平,好搭配裤子,所以很流行。再加上很多板鞋融入了球鞋文化的元素,所以大热。
夏天穿最透气的就是跑鞋(这里指慢跑鞋),春秋传也可,不宜冬季穿着,会很冷。
舒适度上,前面几个都属于运动鞋,舒适度优于后面的休闲鞋和板鞋。板鞋属于休闲鞋。

网球鞋与跑步鞋的区别


由于网球运动剧烈,所以强度及运动保护即为网球鞋最大的设计要求,外底以耐磨橡胶制成,前后段边墙较长,以防摩擦,外底整体较平,花纹细碎,且方向性复杂,从而适应网球运动频繁的各方向动作,达到防滑、耐磨的运动要求;中底后跟的加厚避震设计,同时提高稳定性能,以适应运动中的较多跳跃和吸震的要求,部分高档产品还加装其它特殊吸震材料,以体现更多的专业运动风格。
打网球一定要穿网球鞋,它的特殊构造会有助于你提高球技,增强有效跑动。要知道打网球的胜利有50%的胜利取决于你的跑动,可见一双好球鞋的重要性。不要穿跑步鞋,因为它容易让你摔倒,而篮球鞋又会妨碍脚踝的运动。
快速起动,急停急转,曲弓弯背,踮足转体,凌空腾跃……多种变化的网球技术要领,决定了网球鞋的设计理念和制造要素。当然,对于摩擦系数,避震能力,弹力指标,抗老化值等专业术语,普通网球选手或运动爱好者不能详解,即使是职业选手也未必能说出其一其二。但学会选择和穿着真正对路的网球鞋,却是完全必要的网球知识的入门课程。
重中之重的是鞋底——由于大多数网球场地均有三类性质不同的材料构成(草地、沙土、硬地),因此,不同形状的鞋底几乎决定了您在不同场地的发挥效率。草地场首选有突出胶状纹路的鞋底,但对于沙土场地则应选择宽波沟纹路的鞋底,而现在使用的最多的是硬地球场(塑胶、沥青)则要选择细密人字形纹路的平滑鞋底。如果您经常奔波于三种场地之间,为免更换麻烦,也可仅选择一双综合功能鞋底的运动鞋。
跑步鞋,以慢跑鞋为例介绍一下。在这为您介绍一下跑步鞋的特点,及与网球鞋的区别。
一双良好的慢跑鞋应合乎下列条件:
(一) 后跟要牢固,才能使脚踵稳定,不易倾斜。
(二) 后跟的上方要有适当突起的衬舌,既能保护跟腱,又不会刺激跟腱才行。
(三) 鞋带的下方,需有衬舌,才能保护脚背及伸趾肌腱。
(四) 鞋头最好要高且圆,才不会夹住脚趾,或造成趾甲床血。
(五) 鞋跟要宽大稳固,鞋底要有柔软的的夹层,以吸收冲击的效果。最后端须呈斜面状,以利脚向前移动。
(六) 鞋底要分层,前后的厚度及材料不同。最下层直接和地面接触的部份要坚固耐磨,但也不要硬到失去缓冲的效果,并且须有适当分布的突起物,对地面才有牵引力,才不会滑倒。
(七) 鞋底的前1/3处要柔软,才能适合庶趾关节的背曲,减少跟腱的伤害。
(八) 选鞋时间最好在下午。因为那时的脚已经活动了几个小时,会比早晨时大。并且选鞋时要穿着运动袜,最好先一脚穿新鞋,另一脚穿旧鞋,这样相互比较之后,才两脚都穿新鞋,最容易看出是否合脚。
(九)脚趾前端应预留空间,不可和鞋头接触,因为鞋子穿久了可能变宽,但不会增长,因此鞋子的长度一定要比脚的实际长度多2、3公分以上比较适当。
(十)鞋面材料对价格的影响也很大。使用上等皮料制成的鞋面理论上比较耐用,但是实际上往往是鞋底先磨损。尼龙网编织成的鞋面比较轻,透气性较佳,脚比较容易保持干燥凉爽,在长距离的赛跑时,也能适度的伸展以容纳稍为肿大的脚,这些都是它的优点因此不必坚持非买皮面的跑鞋不可。
按照上述原则,就可以买到一双良好的慢跑鞋了。但是需要注意的是,不要穿跑步鞋从事篮球、网球等球类运动。因为球鞋两侧都需要特别强化,以利于脚的转动及突发性的移动,鞋底前后厚度也比较平,如果穿跑步鞋来打篮球、网球等会常常会发生扭伤脚的运动伤害。

2013年5月28日星期二

跑步机健身不要犯这8种错


摘要: 跑步有很多好处,能提高睡眠质量,增加大脑供血、供氧量,增加肺容量的同时增加血液中氧气携带量。由于跑步好处多多,城市里适宜跑步的环境却越来越少,跑步机成为很多去健身房的人最常用的器械,在很多家庭也占据了一席之地。室内跑步固然方便,不过要是不注意方法,也会使锻炼效果不尽如人意。为此,健身教练武玉提醒大......
专题推荐:临床快报药市动态违法广告医保动态药品价格流感疫情保健常识妇科课堂医改动态
    跑步有很好处,能提高睡眠 质量,增加脑供血、供氧量,增加肺容量 的同时增加血液 中氧气携带量;心脏跳动 的频率 和功效都大大提高,心跳、血压 和血管 壁的弹性也随着升高;促进白血球 和热原质 的生成,它们能够消除我们体内很多病毒 和细菌 ;加强肌腱 、韧带 和关节 的抗损伤能力 ,皮肤 、肌肉 和结缔组织 也可以变得加牢固
  由于跑步好处多多,城市里适宜跑步的环境 却越来越少,跑步机成很多去健身房的人最常用的器械,在很多家庭也占据了席之地。

  室内跑步固然方便,不过要是不注意 方法 ,也会使锻炼效果不尽如人意。为此,健身教练武玉提醒大家,使用跑步机时有几地方需要 特别注意。

  错误1.上了跑步机就猛跑。

  正确做法:先热身。

  通过压腿、下蹲、拉伸肌肉、屈伸关节、活动 脚腕等活动能提高肌肉的温度,使肌肉变得柔软而不易拉伤。

  上跑步机后应先慢走、慢跑,继续进行“动态”热身,逐步加快速度,个过程通常需要10—15分钟。停止跑步时也应逐渐减慢速度,以免出现眩晕 。

  错误2.跑步时间超过60分钟。

  正确做法:跑步时间以45~60分钟为宜。

  在跑步机上运动的时间、强度、方法等,要根据运动目的而定。跑步时身体消耗能量 是按照糖—脂肪 —蛋白质 的顺序,慢跑超过30分钟才会消耗脂肪,超过60分钟就开始消耗蛋白质 。因此,如果以减肥为目的,运动时间既不宜过短,也不宜过长。

  错误3.跑步时手扶把手。

  正确做法:放开双手,摆动 双臂。

  跑步不光是双腿的运动,双臂摆动不但能协调 和保持 身体平衡 ,还能让上半身也参与到能量消耗中,同时收腹挺胸、收紧腰背部肌肉。

  错误4.穿错鞋,或者不穿鞋。

  正确做法:穿专门的慢跑鞋。

  有些人在家里用跑步机会光脚或只穿袜子跑步,这样跑步机的震动会对膝、踝等关节造成不必要的伤害 ,脚底出汗 还容易滑倒。袜子没有运动鞋底的弹性,代替不了运动鞋。所以,跑步最好穿慢跑鞋。慢跑鞋轻便,鞋底柔韧性 强,缓冲性能 好。

  错误5.跑步时看电视。

  正确做法:听音乐。

  跑步是件很枯燥的事,不少人在跑步机上方或机子上安装电视,因此很多人在跑步时不是仰头就是低头,长期下去会带来适得其反的健康伤害。同时,跑步时看电视很可能让你分心,稍有不慎就会受伤。

  错误6:跑步方法有问题。

  正确做法:请教教练正确的跑步方式。

  有人跑步时你会发现,跑步机上老是听到咚咚的很沉闷的声音,这是脚掌直接击打在跑带上的声音。正确的做法是脚掌着地,运用脚弓的弹性卸力方法减少跑步机对人体 的反作用 力!

  错误7.坡度调高、速度调快。

  正确做法:根据自身情况调节强度。

  加大跑步机的坡度和速度会增加运动强度。中老年人跑步时坡度过高会增加对膝关 节的损伤,因此最好在水平状态下运动。快跑可以消耗更多的糖,但消耗的脂肪较少,单纯快跑并不利于以减肥 为目的的运动者。

  错误8.跑步机只用来跑步。

  正确做法:有些跑步机是多功能 的。

  现在很多跑步机融合了划船器、推举器、脚踏车等“附加”项目,使人们在同一台器械上就能对心肺功能、上下肢肌 肉、腰背腹肌 等多部位进行锻炼。另外,在跑步机上加上哑铃等训练,能锻炼更多的肌肉群。但需要提醒的是,这类锻炼方式最好在专业健身教练的指导下进行。

  另外还有一些细节需要提醒大家,不要在跑步机上进行倒走练习 ;最好每15分钟就补充一定的水分 ;每周不要超过4次,在饭后一个小时进行为 好;患有心脏 疾病或高血压的朋友更不宜大运动量使用跑步机,室内空气要保持流通。