布兰城堡入口, 布拉索夫, 罗马尼亚 (© blue sky in my pocket/Getty Images)

Welcom to 评论 - lizhenqiu blog!

    #438

    作者:广西河池市
    PDO 的事务处理

    事务处理具有四个特性:原子性、一致性、独立性、持久性。
    并不是所有的数据库都支持事务处理的,PDO 为能够执行事务处理的数据库提供事务支持。

    配置事务处理需注意:
    1、关闭 PDO 的自动提交;
    $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false);
    Run code
    Cut to clipboard

      2、开启一个事务需要的方法;
      $pdo->beginTransaction(); // 开启一个事务 $pdo->commit(); // 提交事务 $pdo->rollback(); // 回滚事务
      Run code
      Cut to clipboard

        3、一般事务处理是运行在 try...catch...语句中,当事务失败时执行 catch 代码段。
        <?php try { $pdo->beginTransaction(); // 开启一个事务 $row = null; $row = $pdo->exec("xxx"); // 执行第一个 SQL if (!$row) throw new PDOException('提示信息或执行动作'); // 如出现异常提示信息或执行动作 $row = $pdo->exec("xxx"); // 执行第二个 SQL if (!$row) throw new PDOException('提示信息或执行动作'); $pdo->commit(); } catch (PDOException $e) { $pdo->rollback(); // 执行失败,事务回滚 exit($e->getMessage()); } ?>
        Run code
        Cut to clipboard

          在事务中的 SQL 语句,如果出现错误,那么所有的 SQL 都不执行。当所有 SQL 有无误的时候,才提交执行。
          文章:PHP高并发Redis MySQL重复插入测试笔记  发表时间:2018-09-03, 14:44:47  
          展开↯

          #439

          作者:广西河池市
          结论:
          1、不管有木有出现异常,finally块中代码都会执行;
          2、当try和catch中有return时,finally仍然会执行;
          3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
          4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
          #,广西河池市,2018-09-01,16:30:43, 任何执行try 或者catch中的return语句之前,都会先执行finally语句,如果finally存在的话。
          如果finally中有return语句,那么程序就return了,所以finally中的return是一定会被return的,
          编译器把finally中的return实现为一个warning。
          #,广西河池市,2018-09-01,16:31:39, 在try语句中,在执行return语句时,要返回的结果已经准备好了,就在此时,程序转到finally执行了。
          在转去之前,try中先把要返回的结果存放到不同于x的局部变量中去,执行完finally之后,在从中取出返回结果,
          因此,即使finally中对变量x进行了改变,但是不会影响返回结果。
          它应该使用栈保存返回值。
          #,广西河池市,2018-09-01,16:33:09, 如果finally中没有return语句,但是改变了要返回的值,这里有点类似与引用传递和值传递的区别,分以下两种情况,: 1)如果return的数据是基本数据类型或文本字符串,则在finally中对该基本数据的改变不起作用,try中的return语句依然会返回进入finally块之前保留的值。 2)如果return的数据是引用数据类型,而在finally中对该引用数据类型的属性值的改变起作用,try中的return语句返回的就是在finally中改变后的该属性的值。
          #,广西河池市,2018-09-01,16:33:53, 因为使用栈保存返回值,即使finally中执行i++,但是影响不到之前保存下来的具体的值。 所以return影响不了基本型的值。 而修改list ,map,自定义类等引用类型时,虽然进入finally之前保存了引用的地址,所以在finally中引用地址指向的内容改变了, 影响了返回值。
          #,广西河池市,2018-09-01,17:31:48, :try{ return;}catch(){return;} finally{return;} 程序执行try块中return之前(包括return语句中的表达式运算)代码; 有异常:执行catch块中return之前(包括return语句中的表达式运算)代码; 则再执行finally块,因为finally块中有return所以提前退出。 无异常:则再执行finally块,因为finally块中有return所以提前退出。 finally中有return会吃掉异常的
          #,广西河池市,2018-09-01,17:32:23, 1.影响返回结果的前提是在 非 finally 语句块中有 return 且非基本类型 2.不影响返回结果 的前提是 非 finally 块中有return 且为基本类型 这也解释了,为什么Date类型是被修改的,究其本质 基本类型在栈中存储,返回的是真实的值,而引用类型返回的是其浅拷贝堆地址.所以才会改变~
          #,广西河池市,2018-09-01,17:32:49, 基本数据类型是不能修改的,其他的可以修改,包括date
          #,广西河池市,2018-09-01,17:33:44, date类型底层貌似是对long类型的数据的封装,也就是说JVM可能在编译的时候指定了一个常量值保存了起来,所以在finally块中修改的其实不是date底层所指向的那个副本,而是对类似于基本数据类型的修改,所以返回的结果仍然是一开始编译好的时候指定的副本。也就是没变的原因。 而其他的对象(引用类型)则是被finally块中的代码改变了所引用变量的真实数据,所以发生了改变。 也就是说,严格来讲,Date类型是个伪对象类型。 以上均为个人观点,如果有误,还望指出,大家一起研究。 :)
          文章:finally代码块  发表时间:2018-09-01, 16:30:09  
          展开↯

          #440

          作者:广西河池市
          即使try里包含continue,break,return,try块结束后,finally块也会执行。
          文章:finally代码块  发表时间:2018-09-01, 16:28:53  
          展开↯

          #441

          作者:广西河池市
          我觉得当try,finally都有return时,不能叫做覆盖,因为try中的return只执行了表达式,然后放在某个空间,但是并没有执行return(因为一旦执行return程序就结束了),然后执行finally里面的代码,接着finally中遇到return直接结束了程序,所以应该说是执行了try中return的表达式,而被finally中的return提前结束比较好,并不是finally中的return覆盖了try中的return。
          #,广西河池市,2018-09-01,16:26:57, 对于基本类型而言 是值传递 所以2被缓存的是值 而不是变量的地址 再return出去就是2
          #,广西河池市,2018-09-01,16:27:14, String类型不可变 也就是String a = "abc";后,存储"abc"字符串的地址的内容不可变,而a变量的重新赋值是通过指向另一块内存地址来实现的。同int型变量。String型变量暂存的是"abc"的存储地址,因此不会发生变化。你可以用StringBuffer、StringBuilder等可变字符类型来对比。
          文章:finally代码块  发表时间:2018-09-01, 16:26:11  
          展开↯

          #442

          作者:广西河池市
          Mysql查询某字段值重复的数据
          查询user表中,user_name字段值重复的数据及重复次数
          select user_name,count(*) as count from user group by user_name having count>1;
          Run code
          Cut to clipboard
            文章:PHP高并发Redis MySQL重复插入测试笔记  发表时间:2018-08-31, 20:11:30  
            展开↯

            #443

            作者:广西河池市
            文章:PHP高并发Redis MySQL重复插入测试笔记  发表时间:2018-08-31, 20:01:36  
            展开↯

            #444

            作者:广西河池市
            第一:如果线程1插入订单的过程中,线程2再去插入此时线程2会返回“订单已存在”的提示 ,然后问题是如果线程1插入失败,那么最终结果是数据库里并没有这个订单,但是线程2的用户却看到了“订单已存在” 这样的“错误”提示
            第二:关于数据库事务的问题,在ssh这种框架里,经常出现配置的事务是在service方法执行前开启事务,在方法执行完以后提交事务,如果是这种情况的话,那还是会出现数据重复的问题,比如线程1 执行完 MemcacheUtil.del(key); 方法时 此时线程1的事务还没有提交(也就是说数据库里还没有相应的数据),但是缓存里的key已经被删掉了,与此同时线程2看不到数据库里的数据,缓存里的数据也没有
            #,广西河池市,2018-08-31,14:53:49, 多台服务器部署,MemcacheUtil 要保证是全局的,不然也有问题
            文章:处理高并发情况下的DB插入  发表时间:2018-08-31, 14:53:36  
            展开↯

            #445

            作者:广西河池市宜州市
            PHP中利用redis实现消息队列处理高并发请求
            将请求存入redis 为了模拟多个用户的请求,使用一个for循环替代 //redis数据入队操作 $redis = new Redis(); $redis->connect('127.0.0.1',6379); for($i=0;$i<50;$i++){ try{ $redis->LPUSH('click',rand(1000,5000)); }catch(Exception $e){ echo $e->getMessage(); } } 在后台进行数据处理 守护进程 //redis数据出队操作,从redis中将请求取出 $redis = new Redis(); $redis->pconnect('127.0.0.1',6379); while(true){ try{ $value = $redis->LPOP('click'); if(!$value){ break; } //var_dump($value)."\n"; /* * 利用$value进行逻辑和数据处理 */ }catch(Exception $e){ echo $e->getMessage(); } }
            Run code
            Cut to clipboard
              #,广西河池市宜州市,2018-08-30,18:09:43,
              //关于redis事务的案例 header("content-type:text/html;charset=utf-8"); $redis = new redis(); $redis->connect('localhost', 6379); //$result = $redis->connect('localhost', 6379); //$redis = Yii::app()->redis; $redis->set("testName","33"); //$mywatchkey = $redis->get("mywatchkey"); $mywatchkey = $redis->get('testName'); //($test);exit; $rob_total = 100; //抢购数量 if($mywatchkey<$rob_total){ $redis->watch("testName"); $redis->multi(); //设置延迟,方便测试效果。 sleep(5); //插入抢购数据 $redis->hSet("testName","user_id_".mt_rand(1, 9999),time()); $redis->set("testName",$mywatchkey+1); $rob_result = $redis->exec(); if($rob_result){ $mywatchlist = $redis->hGetAll("testName"); echo "抢购成功!<br/>"; echo "剩余数量:".($rob_total-$mywatchkey-1)."<br/>"; echo "用户列表:<pre>"; var_dump($mywatchlist); }else{ echo "手气不好,再抢购!";exit; } }
              Run code
              Cut to clipboard
                #,广西河池市宜州市,2018-08-30,18:17:30,
                先将商品库存存入队列:
                <?php $store=1000; //商品库存 $redis=new Redis(); $result=$redis->connect('127.0.0.1',6379); $res=$redis->llen('goods_store'); for($i=0; $i<$store; $i++){ $redis->lpush('goods_store',1); } echo $redis->llen('goods_store'); ?>
                Run code
                Cut to clipboard

                  客户执行下单操作:
                  $redis=new Redis(); $result=$redis->connect('127.0.0.1',6379); $count = $redis->lpop('goods_store'); if(!$count){ echo '抢购失败!'; return; }
                  Run code
                  Cut to clipboard
                    文章:php redis 学习笔记  发表时间:2018-08-30, 18:08:32  
                    展开↯

                    #446

                    作者:广西河池市宜州市
                    文章:程序员编程常用网页工具集[游戏]  发表时间:2018-08-24, 16:26:17  
                    展开↯

                    #447

                    作者:广西河池市宜州市
                    阿里的电商形态,起于流量,兴于支付,全于物流
                    展开↯

                    #448

                    作者:广西南宁市
                    #,广西南宁市,2017-09-14,11:57:00, 人活着就不要说委屈和辛苦,活该的。
                    #,广西河池市宜州市,2018-04-13,15:37:18,
                    #,广西河池市宜州市,2018-04-26,15:07:55,
                    #,广西河池市宜州市,2018-04-26,15:09:25,
                    #,广西河池市宜州市,2018-06-01,11:13:43,
                    老板发工资给我,不是因为我为公司做事,而是因为我为了这份工作,没能为自己做事。
                    不是因为公司得到了什么,而是因为我失去了什么。
                    所以公司给我的那份工资,严格来说不是工资,是赔偿。
                    其中分别就是,你出粮给我,我要多谢你。
                    你赔偿给我,你要加多一句“对不起”。
                    ——黄子华
                    #,广西河池市宜州市,2018-06-01,15:08:16,@5, 又有钱拿又不用上班,我猜是替人坐牢
                    #,广西河池市宜州市,2018-06-01,15:10:04,@6, 不,这不是去幼儿园的车
                    #,广西河池市宜州市,2018-06-01,16:42:13,@5, 永远只有买错的,没有卖错的。
                    #,广西河池市,2018-06-04,14:46:31,@5, 多一人信中医就意味着少一份医保的钱,你说中医好不好吧
                    #,广西河池市,2018-06-06,10:31:12, 说一千道一万可别把资本家当亲爹,
                    雇佣关系而已,我时刻提醒自己
                    #,广西河池市,2018-06-06,10:31:27,@10,
                    第1次你给我发错(多)了,我原谅你。
                    第2次你又发错(少)了,怎么能继续原谅你?
                    一个很老的笑话
                    #,广西河池市,2018-06-06,17:47:13,@11, 普通人通过各种各样的手段,缴纳阶级固化的“过路费”
                    #,广西河池市,2018-06-06,17:48:31, 三和大神的“丧”和我们的“丧”没有本质的不同。
                    #,广西河池市,2018-06-06,17:48:43, “世界上最快乐的地方”也分主配角
                    #,广西河池市,2018-06-07,17:37:25, 看懂日本读《菊与刀》 看懂明朝读《明朝那些事》 看懂科幻读《三体》 看懂经济读《货币战争》
                    #,广西河池市,2018-06-07,17:59:08, 13343459094
                    15830371000
                    #,广西河池市宜州市,2018-06-20,09:42:27,
                    #,广西河池市宜州市,2018-07-30,17:23:40, 如果是很羞涩的人跟你搭讪,你就要小心了。他们可以突破自己的阻障跟你主动说话,说明他们后面藏着更大的秘密。
                    #,广西河池市宜州市,2018-07-31,09:18:23, 孤独比一天抽 15 根烟的危害还要大
                    #,广西河池市宜州市,2018-08-01,09:27:50, 都已经成为知名人物了,哪那么多“意见”,钱挣的不开心吗
                    #,广西河池市宜州市,2018-08-01,09:30:18, 一切皆因果,怎么开始的怎么结束。
                    #,广西河池市宜州市,2018-08-22,17:18:28,@2,
                    #,广西河池市宜州市,2018-08-22,17:22:46,@22,
                    文章:@意见反馈/技术支持/伊网/安企网  发表时间:2017-09-14, 11:48:07  
                    展开↯

                    #449

                    作者:广西河池市宜州市
                    把“性感”简单直接粗暴的与“女性”挂钩的人审美也一定是简单直接粗暴的
                    文章:@意见反馈/技术支持/伊网/安企网  发表时间:2018-08-22, 09:48:04  
                    展开↯

                    #450

                    作者:广西河池市宜州市
                    安装nginx
                    //进入nginx目录 cd nginx
                    Run code
                    Cut to clipboard
                      #,广西河池市宜州市,2018-08-01,10:10:20, 输入命令./nginx -t
                      看到如下显示nginx.conf syntax is ok

                      nginx.conf test is successful

                      说明配置文件正确
                      #,广西河池市宜州市,2018-08-01,10:11:12,
                      在启动命令-c前加-t
                      #,广西河池市宜州市,2018-08-10,23:22:32,
                      wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080 Centos出现-bash: unzip: command not found的解决办法 利用unzip命令解压缩的时候,出现-bash: unzip: command not found的错误。 unzip——命令没有找到,其原因肯定是没有安装unzip。 利用一句命令就可以解决了。 命令是: yum install -y unzip zip 安装成功后就可以使用unzip命令
                      Run code
                      Cut to clipboard
                        #,广西河池市宜州市,2018-08-21,15:18:10,
                        Linux下ftp服务可以通过搭建vsftpd服务来实现
                        执行 systemctl start vsftpd.service 启动vsftp服务,然后可以通过命令: systemctl status vsftpd.service 查看ftp服务的运行状态
                        systemctl stop vsftpd.service
                        Run code
                        Cut to clipboard
                          #,广西河池市宜州市,2018-08-21,15:53:09, sftp和ftp区别在于:文件的安全性
                          FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资源。
                          SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的。
                          SFTP的传输效率比FTP要低。
                          文章:LINUX安装NGINX笔记  发表时间:2018-06-14, 17:49:17  
                          展开↯

                          #451

                          作者:广西南宁市
                          #,广西南宁市,2017-12-03,23:59:09, 微信头像金装律师士兵英国老外军人仪仗队朋友圈封面⭕
                          #,广西河池市宜州市,2018-08-18,15:13:51,
                          #,广西河池市宜州市,2018-08-20,11:25:25, 资本主义就是这样啊,贪者多得
                          文章:程序员编程常用网页工具集[游戏]  发表时间:2017-07-29, 10:26:00  
                          展开↯

                          #452

                          作者:广西河池市宜州市
                          #,广西河池市宜州市,2018-08-02,15:18:15,
                          #,广西河池市宜州市,2018-08-02,15:18:33,
                          #,广西河池市宜州市,2018-08-02,15:22:08,
                          #,广西河池市宜州市,2018-08-17,09:23:58, 《梦中的婚礼》机械手臂演奏钢琴曲 机器手弹钢琴
                          文章:@意见反馈/技术支持/伊网/安企网  发表时间:2018-08-02, 15:09:59  
                          展开↯

                          #453

                          作者:广西河池市宜州市
                          到底是“学术研究无禁区”,还是“思想道德无底线”
                          #,广西河池市宜州市,2018-08-17,09:14:03, 集权可以跑的很快,但刹不住车
                          文章:@意见反馈/技术支持/伊网/安企网  发表时间:2018-08-17, 09:10:02  
                          展开↯

                          #454

                          作者:广西河池市宜州市
                          october CMS 模板

                          变量:
                          {{variable}} {{isAjax?'Yes':'No'}} {{'Your name:' ~ name}}
                          Run code
                          Cut to clipboard


                            标签:
                            {%tag%} {%if stormCloudComing%}   Stay inside {else %}   Gooutside and play {%endif%} {%set activePage='blog'%}
                            Run code
                            Cut to clipboard


                              过滤器:
                              {{‘string’|filter}} {{price |currency('USD')}} {{'October Glory'|upper|replace({'October':'Morning'})}}
                              Run code
                              Cut to clipboard


                                功能:
                                {{function()}} {{dump(variable)}}
                                Run code
                                Cut to clipboard


                                  this.page:
                                  //布局: {{this.page.layout}} //id:文件名称和文件夹名称转换为css友好标识符 <body class="page-{{this.page.id}}"> //标题 <h1>{{this.page.title}}</h1> //描述 <p>{{ this.page.description }}</p> //meta_title <title>{{ this.page.meta_title }}</title> //meta_description <meta name="description" content="{{ this.page.meta_description }}"> //隐:隐藏的页面只能由登录的后端用户访问。 {% if this.page.hidden %} <p>Note to other admins: We are currently working on this page.</p> {% endif %}
                                  Run code
                                  Cut to clipboard


                                    this.layout:
                                    //属性:您可以通过访问当前的布局对象,this.layout并返回该对象Cms\Classes\Layout //ID: <body class="layout-{{ this.layout.id }}"> //描述 <meta name="description" content="{{ this.layout.description }}"> this.theme: //属性 :this.theme将提供直接访问表单字段值,由任何主题定制定义。它本身也具有以下特性 //ID <body class="theme-{{ this.theme.id }}"> //配置 <meta name="description" content="{{ this.theme.config.description }}">
                                    Run code
                                    Cut to clipboard


                                      this.param:
                                      //您可以通过this.param它访问当前的URL参数,并返回一个PHP数组 //访问页面参数 //如何访问tab页面中的URL参数。 url = "/account/:tab" == {% if this.param.tab == 'details' %} <p>Here are all your details</p> {% elseif this.param.tab == 'history' %} <p>You are viewing a blast from the past</p> {% endif %} //如果参数名称也是一个变量,那么可以使用数组语法 url = "/account/:post_id" == {% set name = 'post_id' %} <p>The post ID is: {{ this.param[name] }}</p>
                                      Run code
                                      Cut to clipboard


                                        this.environment
                                        //您可以通过访问当前环境对象,this.environment并返回引用当前环境配置的字符串 //如果网站在测试环境中运行,以下示例将显示横幅: {% if this.environment == 'test' %} <div class="banner">Test Environment</div> {% endif %}
                                        Run code
                                        Cut to clipboard


                                          {%partial%}
                                          {% partial "footer" %} {% partial "sidebar/menu" %} {% set tabName = "profile" %} {% partial tabName %} % partial "blog-posts" posts=posts %} {% partial "location" city="Vancouver" country="Canada" %} <p>Country: {{ country }}, city: {{ city }}.</p>
                                          Run code
                                          Cut to clipboard


                                            {%content%}
                                            {% content "contacts.htm" %} {% content "sidebar/content.htm" %} {% content "readme.txt" %} {% content "changelog.md" %} {% put sidebar %} {% content 'sidebar-content.htm' %} {% endput %} {% content "welcome.htm" name=user.name %} {% content "location.htm" city="Vancouver" country="Canada" %} <p>Country: {country}, city: {city}.</p> {% content "welcome.htm" likes=[ {name:'Dogs'}, {name:'Fishing'}, {name:'Golf'} ] %} <ul> {likes} <li>{name}</li> {/likes} </ul>
                                            Run code
                                            Cut to clipboard


                                              {%占位符%}
                                              {% placeholder name %} {% put name %} <p>Place this text in the name placeholder</p> {% endput %} {% placeholder sidebar default %} <p><a href="/contacts">Contact us</a></p> {% endplaceholder %} {% put sidebar %} <p><a href="/services">Services</a></p> {% default %} {% endput %} //检测占位符是否存在 {% if placeholder('sidemenu') %} <!-- Markup for a page with a sidebar --> <div class="row"> <div class="col-md-3"> {% placeholder sidemenu %} </div> <div class="col-md-9"> {% page %} </div> </div> {% else %} <!-- Markup for a page without a sidebar --> {% page %} {% endif %} //自定义属性 {% placeholder ordering title="Ordering information" type="text" %} {% placeholder ordering default title="Ordering information" type="text" %} There is no ordering information for this product. {% endplaceholder %}
                                              Run code
                                              Cut to clipboard
                                                文章:OctoberCms学习笔记中文文档翻译  发表时间:2018-08-14, 16:55:00  
                                                展开↯

                                                #455

                                                作者:广西河池市宜州市
                                                模仿网易梦幻西游游戏西游记师徒四人行走动画css效果 gif背景动画图片 唐僧 孙悟空 猪八戒 沙和尚 西天取经
                                                <style> .west-01 { position: absolute; width: 200px; height: 180px; left: 50%; margin-left: -398px; top: 352px; background-image: url(https://out.img.pan.lizhenqiu.com/FqDMTm_8I03UBd6Lx-cY9FaIB99m); background-repeat: no-repeat; -webkit-animation: play01 1.4s steps(8) infinite; -moz-animation: play01 1.4s steps(8) infinite; -ms-animation: play01 1.4s steps(8) infinite; animation: play01 1.4s steps(8) infinite } @-webkit-keyframes play01 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @-moz-keyframes play01 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @-o-keyframes play01 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @-ms-keyframes play01 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @keyframes play01 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } .west-02 { position: absolute; width: 200px; height: 180px; left: 50%; margin-left: -198px; top: 356px; background-image: url(https://out.img.pan.lizhenqiu.com/Fjr4nM2HtaFF-XM-oabkVJBL-U1z); background-repeat: no-repeat; -webkit-animation: play02 1.4s steps(8) infinite; -moz-animation: play02 1.4s steps(8) infinite; -ms-animation: play02 1.4s steps(8) infinite; animation: play02 1.4s steps(8) infinite } @-webkit-keyframes play02 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @-moz-keyframes play02 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @-o-keyframes play02 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @-ms-keyframes play02 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } @keyframes play02 { 0% { background-position: 0 0 } 100% { background-position: -1600px 0 } } .west-03 { position: absolute; width: 170px; height: 240px; left: 50%; margin-left: -11px; top: 326px; background-image: url(https://out.img.pan.lizhenqiu.com/Ft1ZQTkZbB535lBwZ4vjVhWU5ol6); background-repeat: no-repeat; -webkit-animation: play03 1.4s steps(8) infinite; -moz-animation: play03 1.4s steps(8) infinite; -ms-animation: play03 1.4s steps(8) infinite; animation: play03 1.4s steps(8) infinite } @-webkit-keyframes play03 { 0% { background-position: 0 0 } 100% { background-position: -1360px 0 } } @-moz-keyframes play03 { 0% { background-position: 0 0 } 100% { background-position: -1360px 0 } } @-o-keyframes play03 { 0% { background-position: 0 0 } 100% { background-position: -1360px 0 } } @-ms-keyframes play03 { 0% { background-position: 0 0 } 100% { background-position: -1360px 0 } } @keyframes play03 { 0% { background-position: 0 0 } 100% { background-position: -1360px 0 } } .west-04 { position: absolute; width: 210px; height: 200px; left: 50%; margin-left: 198px; top: 372px; background-image: url(https://out.img.pan.lizhenqiu.com/FjTycCEEtOfP7JYjlvAybcZVFYqh); background-repeat: no-repeat; -webkit-animation: play04 1.4s steps(8) infinite; -moz-animation: play04 1.4s steps(8) infinite; -ms-animation: play04 1.4s steps(8) infinite; animation: play04 1.4s steps(8) infinite } @-webkit-keyframes play04 { 0% { background-position: 0 0 } 100% { background-position: -1680px 0 } } @-moz-keyframes play04 { 0% { background-position: 0 0 } 100% { background-position: -1680px 0 } } @-o-keyframes play04 { 0% { background-position: 0 0 } 100% { background-position: -1680px 0 } } @-ms-keyframes play04 { 0% { background-position: 0 0 } 100% { background-position: -1680px 0 } } @keyframes play04 { 0% { background-position: 0 0 } 100% { background-position: -1680px 0 } } </style> <div class="west-01"></div> <div class="west-02"></div> <div class="west-03"></div> <div class="west-04"></div>
                                                Run code
                                                Cut to clipboard
                                                  文章:模仿优酷首页的一些前端布局  发表时间:2018-08-09, 11:08:14  
                                                  展开↯

                                                  #456

                                                  作者:广西河池市宜州市
                                                  git 换行符LF与CRLF转换问题

                                                  一、背景 在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),后来的 OS X 在更换内核后与 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。Git 的“换行符自动转换”功能听起来似乎很智能、很贴心,因为它试图一方面保持仓库内文件的一致性(UNIX 风格),一方面又保证本地文件的兼容性(Windows 风格)。但遗憾的是,这个功能是有 bug 的,而且在短期内都不太可能会修正。 二、解决方案 1.Git设置 git config --global core.autocrlf false git config --global core.safecrlf true 含义: AutoCRLF #提交时转换为LF,检出时转换为CRLF git config --global core.autocrlf true #提交时转换为LF,检出时不转换 git config --global core.autocrlf input #提交检出均不转换 git config --global core.autocrlf false SafeCRLF #拒绝提交包含混合换行符的文件 git config --global core.safecrlf true #允许提交包含混合换行符的文件 git config --global core.safecrlf false #提交包含混合换行符的文件时给出警告 git config --global core.safecrlf warn 2.IDE设置使用UNIX换行符 IDEA的设置File -> Settings Editor -> Code Style Line separator (for new lines) ,选择:Unix and OS X (\n) 对已使用Windows换行符的文件,可以使用Sublime Text打开, View->Line Endings,选Unix,保存;
                                                  Run code
                                                  Cut to clipboard
                                                    #,广西河池市宜州市,2018-08-09,10:48:28, 解决crlf 和 lf不同带来的冲突问题
                                                    crlf 和 lf 是文本换行的不同方式:

                                                    crlf: "\r\n", windows系统的换行方式

                                                    lf: "\n", Linux系统的换行方式

                                                    他们之间的不同经常会导致不同会导致使用不同系统的同事之间的代码冲突问题。

                                                    在你使用git拉取代码的时候,git会自动将代码当中与你当前系统不同的换行方式转化成你当前系统的换行方式,从而造成这种冲突。

                                                    window系统解决办法:

                                                    1. 修改git全局配置,禁止git自动将lf转换成crlf, 命令:

                                                    git config --global core.autocrlf false


                                                    2. 修改编辑器的用户配置,例如vscode

                                                    "files.eol": "\n", // 文件换行使用lf方式
                                                    文章:GitHub代码管理代码托管  发表时间:2018-08-09, 10:48:10  
                                                    展开↯
                                                    你好,残忍屏蔽广告

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

                                                    该删除操作将不可恢复。

                                                    删除 取消

                                                    激活Windows

                                                    转到"设置"以激活Windows。