2017-06-28 (完结)
今天在工作的时候发现,苹果的safari浏览器会自动将数字转换成电话号码,导致显示不正常;
解决办法:
添加<meta name="format-detection" content="telephone=no" />
2017-06-16
2017-06-09
Laravel + MongoDB 最近学习MongoDB的时候就想通过Laravel实现一下。首先进入到项目跟目录执行
composer require jenssegers/mongodb(这里我们composer的是支持ORM驱动的,
原生php的话使用require mongodb/mongodb) ,这时候报了错,原来是猴急的我忘记装扩展了(windows.php.net下载了mongodb的扩展)。
开始1、config/app.php - Service Provider
providers追加: Jenssegers\Mongodb\MongodbServiceProvider::class, aliases追加: 'Moloquent' => Jenssegers\Mongodb\Eloquent\Model::class, //Moloquent 使用mongodb的Model继承2、config/database.php
'default' => env('DB_CONNECTION', 'mongodb'), //默认数据库为mongo connections 追加: 'mongodb' => [ //MongoDB 'driver' => 'mongodb', 'host' => '10.2.20.46', 'port' => 10001, 'username' => '', 'password' => '', 'database' => 'userbehavior', //demodb 'options' => [] ],3、Model
使用mongodb的Model 中的collection 相当于MySQL中的表名设置:
protected $collection = 'table';主键是默认的
_id不使用mongodb的
Model添加protected $connection = 'mysql';或者修改
/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php中的//protected $connection; protected $connection = 'mysql';4、Query Builder
//mongodb的操作可以使用laravel封装好的查询构造器等等 DB:table(''); => DB:collection('')
参考更多资料https://github.com/jenssegers/laravel-mongodb
2017-06-07
h5写的视频网页在某些电脑中打开后只下载而不播放的问题,
以及程序中出现“No compatible source was found for this media”的问题,多数情况下是忽略了MIMEtype要对应!常见视频格式MIMEtype:
Video Type Extension MIME Type Flash .flv video/x-flv MPEG-4 .mp4 video/mp4 iPhone Index .m3u8 application/x-mpegURL iPhone Segment .ts video/MP2T 3GP Mobile .3gp video/3gpp QuickTime .mov video/quicktime A/V Interleave .avi video/x-msvideo Windows Media .wmv video/x-ms-wmv示例代码如下:
<video id="video" width="640" height="360" class="video-js vjs-default-skin vjs-big-play-centered" preload="auto" data-setup='{"language":"zh-CN","playbackRates":[0.5,1,1.5,2,4]}' controls poster="./cctv3.png"> <source src="http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8" type="application/x-mpegURL"> </video> <hr> <video width="640" height="360" id="example_video_1" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" poster="./favicon.png" data-setup='{"example_option":true, "playbackRates":[0.5,1,2,4]}'> <source src="./V-stuntssvc-en_us-720p.mp4" type='video/mp4' /> </video>
2017-06-05
字符串时间对比,推荐使用new DateTime方式,因为使用64位方式进行存储,从而避免出现2038年BUG问题;
$a = "2017-06-08"; $b = "2017-06-18"; //var_dump(strtotime($b) - strtotime($a)); //echo int(864000) $objA = new DateTime($a); $objB = new DateTime($b); $interval = $objA->diff($objB); var_dump($interval->days); // echo int(10)
2017-06-02
redis分享 - 仅使用Redis+PHP设计实现一个简单的Twitter
INCR global:nextUserId => 1000 SET uid:1000:username Jack SET uid:1000:password 123456 SET username:antirez:uid 1000读了这篇文章,如雷贯耳,豁然开朗!
我们使用global:nextUserId为键(Key)是为了给每个新用户分配一个唯一ID,然后用这个唯一ID来加入其他key,以识别保存用
户的其他数据。这就是kv数据库的设计模式!请牢记于心!
2017-05-31
sort() 函数用于对数组单元从低到高进行排序。
rsort() 函数用于对数组单元从高到低进行排序。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
ksort() 函数用于对数组单元按照键名从低到高进行排序。
krsort() 函数用于对数组单元按照键名从高到低进行排序。
看了下源码,php 的sort()函数是使用快排实现的,如果不知道哪种方式适合你,
参考动画Sorting Algorithms Animations
2017-05-27
在处理模板打印的问题上时出现过这样一个问题:浏览器不知道何时分页,导致出现断裂层。
解决办法:
添加css样式强制分页{ page-break-after: always; /*在标签后换页*/ } { page-break-before: always; /*在标签前换页*/ }
2017-05-25
[twig]心血来潮就要用twig!需求上要我写一个可配置模板,于是利用UEditor二次开发满足需求,一直用smarty今天用twig果
然踩了坑!<?php require_once'../vendor/autoload.php'; $loader = new Twig_Loader_Filesystem('../twigTest'); //定义模板路径 $twig = new Twig_Environment($loader, array( 'cache' => '../twig_cache', ) //缓存路径(记得清理) ); //以下下两种方式相当于smarty的display //1. //$tem = $twig->load('test.twig'); //echo $tem->render(array('the' => '修哥', 'go' => '武汉')); //2. echo $twig->render('test.twig', array('the' => '修哥', 'go' => '深圳'));
smarty: (composer 安装的smarty)<?php require_once '../vendor/autoload.php'; $smarty = new Smarty(); $smarty->setTemplateDir( '../twigTest/'); //模板地址,为了省事直接用刚刚调试twig的目录了 //$smarty->setCacheDir( '../view_cache'); //$smarty->setCompileDir( '../view_c'); $smarty->setLeftDelimiter('{{'); $smarty->setRightDelimiter('}}'); // 将上面代码做出配置文件,引入一次即可使用 $smarty->assign('name', '修哥'); $smarty->display('test.twig');
test.twig
twig {{ the }} - {{ go }} smarty {{$name}}
2017-05-24
今天终于可以不用再继续做前端的东西了,断断续续用了大约三天的时间,把原本计划不支持的IE8浏览器兼容性调试完毕,上传了代码终于舒了一口气,MDIE for Microsoft !
中午的时候产品改了一个小需求,我配合罗巅峰完成了一个后退同时记录数据的功能,利用cookie共享实现,再一次捍卫了天才称号!
2017-05-23
ie8以下不支持css3的background-size属性,用ie专有属性filter可以解决,但是会与background url的图片重叠,为了兼容于是仍需要ie的hack写法,完整代码如下:
background: url('../imagesNew/logo.png') no-repeat ; background-size:245px; background: none\9; /*hack*/ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/Reserve/imagesNew/logo.png', >sizingMethod='scale'); /*过滤*/ -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader( src='/Reserve/imagesNew/logo.png', >sizingMethod='scale')"; /*过滤*/既解决了ie8以下的兼容问题,又不影响其他版本浏览器。
参考:有什么办法可以让ie浏览器不支持background-image属性,用其他浏览器可以支持
参考:[IE 8: background-size fix [duplicate]][8]
2017-05-22
(IE8json未定义错误)IE浏览器真的是任性,程序在同事测试下是通过的,但是到了现场却报了“json格式未定义,xxx.js xxxh行”的错误,貌似是JSON.stringify()/JSON.parse()方法没有解析,多发查阅资料才发现,JSON是包含在JScript 5.8中,而为了向下兼容ie8只有在文档模式是”Internet Explorer 8 Standards”的时候才使用JScripte 5.8,其他时候使用JScripte 5.7特性。因此如果文档模式没有声明为”Internet Explorer 8 Standards”,ie8是找不到JSON对象的。因为没有兼容到ie6/7,所以必然在ie6/7中,JSON会出现未定义的问题。
解决方法:下载定义json的文件json2.js,并引入到项目中。下载地址:https://github.com/douglascrockford/JSON-js
` <script src="./js/json2.js"></script>
`
2017-05-18
(IE8substr、new Date)这两天真的是忙到爆炸,但是无比充实,今天让我最开心的不是与云会诊平台、影像系统的成功对接,而是解决了诊间预约在IE8下的一个无法保存的BUG,原因是IE9以前js的substr函数使用负数会解析失败,换成slice、substring可以解决,问题不大,但是排错是非常辛苦的,尤其这种兼容性问题,解决的那一刹那我毫不留情的喊出了我的口头禅“我TM是个天才啊”!详情可以参考浅析字符串操作方法slice、substr、substring及其IE兼容性。
昨天正好也遇到一个IE8 new Date(stringTime)的问题,一并记录下来:[ javascript下ie7,ie8的Date
Bug的解决][11];JS判断浏览器是否是IE9版本以下。
本文由 litblc 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Nov 7, 2018 at 05:10 pm


好文,拜读,以后常看学习。
嗯,共勉!