法纳尔森林里的古老月桂树,马德拉群岛,葡萄牙 (© Lukas Jonaitis/Shutterstock)

Welcom to 评论 - lizhenqiu blog!

    #989

    作者:广西南宁市
    js取float型小数点后两位数的方法
    四舍五入
    以下处理结果会四舍五入:
    var num =2.446242342; num = num.toFixed(2); // 输出结果为 2.45
    Run code
    Cut to clipboard

      不四舍五入
      以下处理结果不会四舍五入:
      第一种,先把小数边整数:
      Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77
      Run code
      Cut to clipboard

        第二种,当作字符串,使用正则匹配:
        Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) // 输出结果为 15.77,不能用于整数如 10 必须写为10.0000
        Run code
        Cut to clipboard

          注意:如果是负数,请先转换为正数再计算,最后转回负数
          #,广西南宁市,2017-09-08,17:06:54,
          1.丢弃小数部分,保留整数部分
          parseInt(5/2)
          Run code
          Cut to clipboard

            2.向上取整,有小数就整数部分加1
            Math.ceil(5/2)
            Run code
            Cut to clipboard

              3,四舍五入.
              Math.round(5/2)
              Run code
              Cut to clipboard

                4,向下取整
                Math.floor(5/2)
                Run code
                Cut to clipboard
                  #,广西南宁市,2017-09-08,17:08:20,
                  <script> var num=22.127456; alert( Math.round(num*100)/100); </script>
                  Run code
                  Cut to clipboard
                    #,广西南宁市,2017-09-08,17:10:04,
                    功能:将浮点数四舍五入,取小数点后2位,如果不足2位则补0,
                    这个函数返回的是字符串的格式用法:changeTwoDecimal(3.1415926)返回3.14 changeTwoDecimal(3.1)返回3.10
                    function changeTwoDecimal(x) { var f_x = parseFloat(x); if (isNaN(f_x)) { alert('function:changeTwoDecimal->parameter error'); return false; } var f_x = Math.round(x*100)/100; return f_x; } 功能:将浮点数四舍五入,取小数点后2位 用法:changeTwoDecimal(3.1415926) 返回 3.14 changeTwoDecimal(3.1475926) 返回 3.15 js保留2位小数(强制) 对于小数点位数大于2位的,用上面的函数没问题,但是如果小于2位的,比如: changeTwoDecimal(3.1),将返回 3.1,如果你一定需要3.10这样的格式,那么需要下面的这个函数: function changeTwoDecimal_f(x) { var f_x = parseFloat(x); if (isNaN(f_x)) { alert('function:changeTwoDecimal->parameter error'); return false; } var f_x = Math.round(x*100)/100; var s_x = f_x.toString(); var pos_decimal = s_x.indexOf('.'); if (pos_decimal < 0) { pos_decimal = s_x.length; s_x += '.'; } while (s_x.length <= pos_decimal + 2) { s_x += '0'; } return s_x; }
                    Run code
                    Cut to clipboard
                      文章:JS浮点数运算多出很多位小数点Bug的解决办法  发表时间:2017-09-08, 17:05:01  
                      展开↯

                      #990

                      作者:广西南宁市
                      PHP保留两位小数的几种方法
                      $num = 10.4567; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2); //10.46 //第二种:利用sprintf格式化字符串 $format_num = sprintf("%.2f",$num); echo $format_num; //10.46 //第三种:利用千位分组来格式化数字的函数number_format() echo number_format($num, 2); //10.46 //或者如下 echo number_format($num, 2, '.', ''); //10/46
                      Run code
                      Cut to clipboard
                        文章:JS浮点数运算多出很多位小数点Bug的解决办法  发表时间:2017-09-08, 17:02:27  
                        展开↯

                        #991

                        作者:广西南宁市
                        PHP学习之Mysql 和Mysqli区别
                        (1)Mysql和Mysqli的区别是:

                        mysqli连接是永久连接,而mysql是非永久连接。
                        mysql连接:每当第二次使用的时候,都会重新打开一个新的进程。
                        mysqli连接:一直都只使用同一个进程。
                        好处:这样就可以很大程度的减轻服务器压力。

                        (2)mysql_connect与mysql_pconnect与mysqli_connect:
                        mysql_pconnect打开的连接不会关闭(即使调用mysql_close也不会关闭,因为对其无效),
                        类似于连接缓冲池,如果下次有来自于同一个机器的同一个用户名
                        对同一个数据库的连接,php会自动使用上次已经建立的连接,而不需要再重新建立一个。?
                        好处:是省去了每次与建立连接的开销,
                        坏处:是需要浪费一些,占用一些连接,
                        所以如果用户访问量大的时候会出现错误,要把的max_connections参数改大一点,?或者使用mysql_connect()就解决问题。

                        connect与pconnect不会带来功能的差异,?只有性能上的差别.
                        一般php有俩种运行模式,?一是作为cgi运行,?二是作为apache的模块运行.?
                        作为cgi的时候connect跟pconnect没什么不同,?因为每次cgi进行运行结束后都会被销毁清理掉资源.
                        文章:mysql 远程连接速度慢的解决方案  发表时间:2017-09-08, 09:42:40  
                        展开↯

                        #992

                        作者:广西南宁市
                        微信公众号自定义菜单最多能创建多少个栏目菜单
                        1、 最多创建3个一级菜单,一级菜单名称名字不多于4个汉字或8个字母。
                        2、 每个一级菜单下的子菜单最多可创建5个,子菜单名称名字不多于8个汉字或16个字母。
                        温馨提示:编辑中的菜单不会马上被用户看到,发布成功后,会在24小时后在手机端同步显示,粉丝不会收到更新提示,若多次编辑,以最后一次保存为准。
                        文章:Weiphp微信公众平台自定义菜单等开发  发表时间:2017-09-07, 18:45:24  
                        展开↯

                        #993

                        作者:广西南宁市
                        CustomerService
                        文章:weiphp微信多客服系统插件  发表时间:2017-09-06, 10:33:04  
                        展开↯

                        #994

                        作者:广西南宁市
                        需要先开通qq在线客服状态,否则跳转链接会错误或者空白没有反应
                        QQ在线客服 qq推广 QQ通讯组件

                        <a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=2500152288&site=qq&menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:515807823:53" alt="点击这里给我发消息" title="点击这里给我发消息"/></a>
                        Run code
                        Cut to clipboard

                          该段代码,即能嵌入到你的页面,实现在线交流的功能。
                          文章:安卓苹果手机不同qq客服在线代码  发表时间:2017-09-05, 17:47:33  
                          展开↯

                          #995

                          作者:广西南宁市
                          1. 获取选中项: 获取选中项的Value值: $('select#sel option:selected').val(); 或者 $('select#sel').find('option:selected').val(); 获取选中项的Text值: $('select#seloption:selected').text(); 或者 $('select#sel').find('option:selected').text(); 2. 获取当前选中项的索引值: $('select#sel').get(0).selectedIndex; 3. 获取当前option的最大索引值: $('select#sel option:last').attr("index") 4. 获取DropdownList的长度: $('select#sel')[0].options.length; 或者 $('select#sel').get(0).options.length; 5. 设置第一个option为选中值: $('select#sel option:first').attr('selected','true') 或者 $('select#sel')[0].selectedIndex = 0; 6. 设置最后一个option为选中值:
                          Run code
                          Cut to clipboard
                            文章:js获取select标签选中的值  发表时间:2017-09-05, 14:59:55  
                            展开↯

                            #996

                            作者:广西南宁市
                            1.获取选中值,三种方法都可以: $('input:radio:checked').val(); $("input[type='radio']:checked").val(); $("input[name='rd']:checked").val(); 2.设置第一个Radio为选中值: $('input:radio:first').attr('checked', 'checked'); 或者 $('input:radio:first').attr('checked', 'true'); 注:attr("checked",'checked')= attr("checked", 'true')= attr("checked", true) 3.设置最后一个Radio为选中值: $('input:radio:last').attr('checked', 'checked'); 或者 $('input:radio:last').attr('checked', 'true'); 4.根据索引值设置任意一个radio为选中值: $('input:radio').eq(索引值).attr('checked', 'true');索引值=0,1,2.... 或者 $('input:radio').slice(1,2).attr('checked', 'true'); 5.根据Value值设置Radio为选中值 $("input:radio[value=http://www.2cto.com/kf/201110/'rd2']").attr('checked','true'); 或者 $("input[value=http://www.2cto.com/kf/201110/'rd2']").attr('checked','true'); 6.删除Value值为rd2的Radio $("input:radio[value=http://www.2cto.com/kf/201110/'rd2']").remove(); 7.删除第几个Radio $("input:radio").eq(索引值).remove();索引值=0,1,2.... 如删除第3个Radio:$("input:radio").eq(2).remove(); 8.遍历Radio $('input:radio').each(function(index,domEle){ //写入代码 });
                            Run code
                            Cut to clipboard
                              文章:js获取select标签选中的值  发表时间:2017-09-05, 14:59:40  
                              展开↯

                              #997

                              作者:北京市
                              四大禁曲,忏魂曲,第十三双眼睛,黑色星期天
                              文章:@意见反馈/技术支持/伊网/安企网  发表时间:2017-09-04, 19:19:49  
                              展开↯

                              #998

                              作者:广西南宁市
                              微信授权登录成功但是却是空白页面
                              /** * 通过oauth2.0获取openid * 若只需要获取用户openid,调用次方法,若需要获取用户所有信息,请调用getOpenidByOauth2()方法 */ protected function getOpenidByOauth() { $wx_info = $this->wx_info; // 获取openid if (!$openid) { if (!isset($_GET['code'])) { $customeUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $scope = 'snsapi_base'; $oauthUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' . $wx_info['appid'] . '&redirect_uri=' . urlencode($customeUrl) . '&response_type=code&scope=' . $scope . '&state=oauth#wechat_redirect'; header('Location:' . $oauthUrl); exit(); }else{ $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $wx_info['appid'] . '&secret=' . $wx_info['appsecret'] . '&code=' . $_GET['code'] . '&grant_type=authorization_code'; $result = json_decode(curlGet($url), true); $openid = $result['openid']; } }
                              Run code
                              Cut to clipboard
                                #,广西南宁市,2017-09-04,14:39:53, 微信网页授权 微信公众平台技术文档
                                #,广西南宁市,2017-09-04,14:40:47,@1, 接口调用频次限制说明
                                文章:PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK)  发表时间:2017-09-04, 14:38:43  
                                展开↯

                                #999

                                作者:广西南宁市
                                swf新型版本浏览器,谷歌浏览器空白,flash兼容新版本浏览器
                                <object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100%" height="100%" align="center"> <param name="movie" value="../Public/flash/jinti.swf"> <param name="quality" value="high"> <param name="wmode" value="transparent"> <!--这里代码可使Flash背景透明 --> <embed src="../Public/flash/jinti.swf" width="100%" height="100%" align="center" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"> </embed> </object>
                                Run code
                                Cut to clipboard
                                  #,广西南宁市,2017-08-31,17:15:27, HTML插入SWF
                                  文章:常用html、demo代码  发表时间:2017-08-31, 17:00:10  
                                  展开↯

                                  #1000

                                  作者:广西南宁市
                                  JQuery 对 Select option 的操作
                                  下拉框:
                                  <select id="selectID" > <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> </select>
                                  Run code
                                  Cut to clipboard

                                    下面是对下拉框的基本操作:
                                    <script language="javascript"> $(document).ready(function() { //绑定下拉框change事件,当下来框改变时调用 SelectChange()方法 $("#selectID").change(function() { SelectChange(); }); }) function SelectChange() { //获取下拉框选中项的text属性值 var selectText = $("#selectID").find("option:selected").text(); alert(selectText); //获取下拉框选中项的value属性值 var selectValue = $("#selectID").val(); alert(selectValue); //获取下拉框选中项的index属性值 var selectIndex = $("#selectID").get(0).selectedIndex; alert(selectIndex); ////获取下拉框最大的index属性值 var selectMaxIndex = $("#selectID option:last").attr("index"); alert(selectMaxIndex); } function aa() { //设置下拉框index属性为5的选项 选中 $("#selectID").get(0).selectedIndex = 5; } function bb() { //设置下拉框value属性为4的选项 选中 $("#selectID").val(4); } function cc() { //设置下拉框text属性为5的选项 选中 $("#selectID option[text=5]").attr("selected", "selected"); $("#yyt option:contains('5')").attr("selected", true); } function dd() { //在下拉框最后添加一个选项 $("#selectID").append("<option value='7'>7</option>"); } function ee() { //在下拉框最前添加一个选项 $("#selectID").prepend("<option value='0'>0</option>") } function ff() { //移除下拉框最后一个选项 $("#selectID option:last").remove(); } function gg() { //移除下拉框 index属性为1的选项 $("#selectID option[index=1]").remove(); } function hh() { //移除下拉框 value属性为4的选项 $("#selectID option[value=4]").remove(); } function ii() { //移除下拉框 text属性为5的选项 $("#selectID option[text=5]").remove(); } </script>
                                    Run code
                                    Cut to clipboard
                                      #,广西南宁市,2017-08-31,15:28:46,
                                      option[text=5]这种?为什么我不行,而且网上也有一些说不行的。但是也有很多这样子写的,这到底是误导还是?
                                      文章:on click事件在移动端点击无效bug  发表时间:2017-08-31, 15:28:13  
                                      展开↯

                                      #1001

                                      作者:广西南宁市
                                      修改输入框placeholder文字默认颜色-webkit-input-placeholder
                                      :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #000; opacity:1; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #000;opacity:1; } input:-ms-input-placeholder{ color: #000;opacity:1; } input::-webkit-input-placeholder{ color: #000;opacity:1; }
                                      Run code
                                      Cut to clipboard

                                        也可以给这个属性加字体
                                        input::-webkit-input-placeholder { /* WebKit browsers*/   color:#999;font-size:14px;   } input:-moz-placeholder { /* Mozilla Firefox 4 to 18*/   color:#999;font-size:14px;   } input::-moz-placeholder { /* Mozilla Firefox 19+*/   color:#999;font-size:14px;   } input:-ms-input-placeholder { /* Internet Explorer 10+*/   color:#999;font-size:14px; }
                                        Run code
                                        Cut to clipboard
                                          文章:on click事件在移动端点击无效bug  发表时间:2017-08-31, 15:27:13  
                                          展开↯

                                          #1002

                                          作者:广西南宁市
                                          jquery去掉onclick事件
                                          删除onclick属性:$(“a”).removeAttr(“onclick”); 设置onclick属性:$(“a”).attr(“onclick”,”test();”);
                                          Run code
                                          Cut to clipboard
                                            文章:on click事件在移动端点击无效bug  发表时间:2017-08-31, 15:26:18  
                                            展开↯

                                            #1003

                                            作者:广西南宁市
                                            [微信开发]invalid credential, access_token is invalid or not latest hint

                                            ##################正解################
                                            这种情况跟这个库没有直接关系。
                                            请检查一下是否有别的地方同时请求了access token,导致微信服务器发放了新的access token给别人。尤其是dev环境
                                            ##################正解################

                                            查了好久,先发现下载到本地的文件size很小,只有100来字节,我以为只有头文件,老大说,你要么看看这文件的二进制流是什么,打开一看原来是一个error信息,是JSON字符串
                                            {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [2HYQIa0031ge10] "}
                                            看了下错误code,是access_token过期。
                                            但是官网里说 token默认是7200秒过期,为啥那么快?结果后来百度到,如果有第二地方也请求同一个token的话,那么第一个token会在5分钟之内过期。这也就说明了,为什么在我搭建好第二个环境的时候,老环境就出现了这种问题。因为这两个环境用的是同一个AppID和AppSecret来取得的
                                            access_token,而这个access_token的取得并不是在服务器启动的时候,而且是在需要调用接口的画面初期化的时候去取得的。把取得的token放在s()全局缓存变量中,3600秒过期,方法是
                                            $token = s("access_token"); if($token){ //重新取得token; } return $token;
                                            Run code
                                            Cut to clipboard

                                              所以就一直使用过期的token;一旦token过期,就无法调用js接口了。
                                              文章:最简单的微信支付和退款(无需集成微信支付SDK)代码  发表时间:2017-08-31, 15:09:14  
                                              展开↯

                                              #1004

                                              作者:广西南宁市
                                              会使得ios苹果手机iphone输入框获取焦点失效?不定位弹出输入框?
                                              文章:on click事件在移动端点击无效bug  发表时间:2017-08-31, 15:07:15  
                                              展开↯

                                              #1005

                                              作者:广西南宁市
                                              点击出现黑色背景的解决:-webkit-tap-highlight-color:rgba(0,0,0,0)
                                              在手机上(iphone)点击按钮的时候,屏幕总会闪动一下,这让页面看起来很不友好也不流畅。解决方案加了一句css就解决了:
                                              -webkit-tap-highlight-color:rgba(0,0,0,0)
                                              Run code
                                              Cut to clipboard

                                                //webkit是苹果浏览器引擎,tap点击,highlight背景高亮,color颜色,颜色用数值调节。
                                                原因如下:
                                                在移动端上,有事件监听的元素被点击的时候会被高亮显示,而-webkit-tap-highlight-color属性会在当用户点击iOS的Safari浏览器中的链接或JavaScript的可点击的元素时,覆盖显示的高亮颜色。
                                                该属性可以只设置透明度。如果未设置透明度,iOS Safari使用默认的透明度。当透明度设为0,则会禁用此属性;当透明度设为1,元素在点击时不可见。
                                                a{-webkit-tap-highlight-color:rgba(255,0,0,0);outline:none;}
                                                Run code
                                                Cut to clipboard

                                                  ios微信点击超链接,去掉半透明黑色框效果
                                                  iOS微信点击超链接或是图片超链接,总是弹出一层黑色遮罩层,在a标签上添加style='-webkit-tap-highlight-color:rgba(255,0,0,0);'即可
                                                  文章:on click事件在移动端点击无效bug  发表时间:2017-08-31, 15:00:46  
                                                  展开↯

                                                  #1006

                                                  作者:广西南宁市
                                                  异步接收通知
                                                  /** * notify_url接收页面 */ public function notify(){ // ↓↓↓下面的file_put_contents是用来简单查看异步发过来的数据 测试完可以删除;↓↓↓ // 获取xml $xml=file_get_contents('php://input', 'r'); //转成php数组 禁止引用外部xml实体 libxml_disable_entity_loader(true); $data= json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)); file_put_contents('./notify.text', $data); // ↑↑↑上面的file_put_contents是用来简单查看异步发过来的数据 测试完可以删除;↑↑↑ // 导入微信支付sdk Vendor('Weixinpay.Weixinpay'); $wxpay=new \Weixinpay(); $result=$wxpay->notify(); if ($result) { // 验证成功 修改数据库的订单状态等 $result['out_trade_no']为订单id } }
                                                  Run code
                                                  Cut to clipboard
                                                    文章:ThinkPHP中实现微信支付(jsapi支付)流程  发表时间:2017-08-31, 14:52:38  
                                                    展开↯

                                                    #1007

                                                    作者:广西南宁市
                                                    /** * 使用curl获取远程数据 * @param string $url url连接 * @return string 获取到的数据 */ function curl_get_contents($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //设置访问的url地址 // curl_setopt($ch,CURLOPT_HEADER,1); //是否显示头部信息 curl_setopt($ch, CURLOPT_TIMEOUT, 5); //设置超时 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); //用户访问代理 User-Agent curl_setopt($ch, CURLOPT_REFERER,$_SERVER['HTTP_HOST']); //设置 referer curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); //跟踪301 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回结果 $r=curl_exec($ch); curl_close($ch); return $r; }
                                                    Run code
                                                    Cut to clipboard
                                                      文章:ThinkPHP中实现微信支付(jsapi支付)流程  发表时间:2017-08-31, 14:51:30  
                                                      展开↯
                                                      你好,残忍屏蔽广告

                                                      确定要清除编辑框内容吗?

                                                      该删除操作将不可恢复。

                                                      删除 取消

                                                      激活Windows

                                                      转到"设置"以激活Windows。