场景介绍 需求:判断用户是否为新用户 规则:之前有付费记录为老用记,没有则为新用户 具体实现 [crayon- […]
mysql中值分区间的写法
应用场景 在日常查数据中,会遇到按区间查询,并统计的需求。 具体案例:查询产品上传图片的分布,区间为:0-5, […]
记一次线上sql慢速的总结
前言 今天上线了一个功能后,大波的慢速查询告警前来报道,查询语句其实很简单:MARKDOWN_HASH4932 […]
佳句暂存
习惯的力量
1 2 3 4 5 6 |
注意你的思想,因为它将变成言辞; 注意你的言辞,因为它将变成行为; 注意你的行为,因为它将变成习惯; 注意你的习惯,因为它将变成性格; 注意你的性格,因为它将决定你的命运。 ——撒切尔夫人 |
靠谱 [crayon-62923 […]
wsl(ubuntu20.4)子系统中安装mysql5.7
前言 之前有介绍过源码安装mysql的方法,源码安装相对有点慢,快速搭建环境的时候并不适合。因此又在wsl的支 […]
git 工作常用命令汇总
分支相关 创建分支
1 |
git fetch origin master:test # 从master分支拉取代码创建test分支 |
提交分支到远程 [cra […]
mysql 中锁的分类
mysql 锁的机制 锁的出现,是因为在并发的情况下,会出现数据竞争,这个时候需要保证数据的一致性,就需要锁来 […]
mysql 实现连续的日期统计
应用场景 产品:帮我查一下最近一个月,每天的注册人数;没有注册的日期也要有,人数为0就好了。 开发:如果不要没 […]
聊聊sphinx业务落地架构
前言 随着大数据时代的到来,每个企业都会积累一定量的数据。当数据到达一定体量时(如亿级别),传统的查询方式其实 […]
strace 跟踪php语言 hello world 的系统调用
引言 随着各种开发语言的封装度越来越高,作为应用层的开发工程师,很多时候其实是不了解语言底层的实现,以及系统底 […]
mysql优化——小细节
当使用索引列查询数据是,尽量不要使用表达式,否则不能正常的使用索引 尽量使用主键查询,可避免回表 [crayo […]
基于goaccess实现nginx日志实时分析和展示
网站的nginx日志每天有大概600M左右的数据产生,一直苦于如何让这些数据为我等所用.想过大数据之类的解决方 […]
linux下ssh内网穿透配置方法
有两台服务器A,B网络关系如下
1 2 3 |
服务器 IP 端口 备注 A 192.168.1.6 22 无外网IP,且与B服务器不在同一个局域网 B 111.112.113.114 2288 |
现在想通过B […]
用C语言加密二进制文件
以下代码可以加密txt、jpg、word和mp4文件,其它类型的文件未做测试,理论上是都可以的,如果发现有问题 […]
linux下ssh通过代理免密访问内网服务器
现在很多数据服务器都是隐藏在内网中,不暴露出来给用户,这样可以一定程度上提升服务器的安全性,但是对于日常运维就 […]
php实现http 206协议,显示/下载mongodb中的mp4文件
当用mongodb的gridfs存文件的时候,迁移和维护起来就方便多了。显示也方便,查出来直接输出(getBy […]
生成mysql schema pdf文档
数据库要导出表结构很容易,直接用mysqldump就好了,但是要生成pdf的表格方档就没有现成的工具了,网上找 […]
yii2获取类和方法的注释生成文档
手里有个项目要交付了,对方要求有完整的文档,手写太费事,好在平时写代码有注释的好习惯,于是就自己动手写了一个生 […]
mysql5.7.20配置文件与5.6的区别
由于要新部署服务器,之前一直用5.6的版本,想尝试一下最新的版本5.7.20.不试不知道,试了后坑还是不少。 […]
mongodb创建用户
以下语句均是在mongodb3.2.8版本的基础上做的设置,如果版本不一样有可能有出入。 1.创建一个管理员用 […]
阿里云centos6.8开启ipv6通过appstore审核的方法
最近公司有app要上架到appstore,由于app中嵌入了h5页面,在审核的时候ipv6没有通过。因为服务端 […]
php扩展开发基本步骤
为什么要开发扩展,相信各位看官肯定是仁者见仁,智者见智。像我折腾它就是为了好玩?,但在玩的过程中还是踩了一些坑 […]
You (www) are not allowed to access to (crontab) because of pam configuration.
今天在用yii布署定时任务的时候(crontab -u www -l)出现了如题所示错误. 第一反应是定时任务 […]
监听微信浏览器返回事件实现关闭浏览器方法
一.需求: 用户支付完后,会跳转到一个给用户提示支付成功的页面(这个页面不是微信的,是我们自己的程序页面),然 […]
lnmp环境编译安装配置参数
安装lnmp前请先确认系统已安装相关依赖库:
1 |
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN pcre-devel php-mcrypt libmcrypt libmcrypt-devel |
[…]
yii2实现访问其他目录下控制器的方法
通常控制器都是放于controllers文件夹下面,但可能由于某些原因我们会把控制器放到其他目录下,如在con […]
php实现随机字符串最简单的方法
在开发中经常会用到随机串,在网上看了很多的文章都是先用”abcdefghijklmnopqrstu […]
查看nginx和php-fpm状态的方法
在运维中有时候我们需要查看nginx服务器和php-fpm的运行状态,就像我们需要查看服务器的相关资源状态一下 […]
mysql 5.6 the server quit without updating pid file
首先描述一下出现这个问题的场景: 今天朋友的服务器空间不够用了,利用df 和du命令定位到了占空间的文件是my […]
js/jquery在div中光标位置插入图片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Language" content="zh-cn" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>DIV可编辑框鼠标光标处插入图片或者文字。</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(function(){ $(".imgbox img").click(function(){ $("#testdiv").focus(); var sy = $(".imgbox img").index(this) + 1; var img_url = "<img src='faceimg/"+sy+".gif'>"; /*此处如果不是插入图片可这样: var img_url = "插入测试的文字"; */ _insertimg(img_url); }) //注:如果要插入的是那种“快捷发言,快捷留言”里的文字,只需把那些文字都分别放在A标签里即可,然后img_url=a标签里面的内容。工作中的编辑器终于搞定!能插入图片和快捷发言和表情图片等。 }) //监控粘贴(ctrl+v),如果是粘贴过来的东东,则替换多余的html代码,只保留<br> function pasteHandler(){ setTimeout(function(){ var content = document.getElementById("testdiv").innerHTML; valiHTML=["br"]; content=content.replace(/_moz_dirty=""/gi, "").replace(/\[/g, "[[-").replace(/\]/g, "-]]").replace(/<\/ ?tr[^>]*>/gi, "[br]").replace(/<\/ ?td[^>]*>/gi, " ").replace(/<(ul|dl|ol)[^>]*>/gi, "[br]").replace(/<(li|dd)[^>]*>/gi, "[br]").replace(/<p [^>]*>/gi, "[br]").replace(new RegExp("<(/?(?:" + valiHTML.join("|") + ")[^>]*)>", "gi"), "[$1]").replace(new RegExp('<span([^>]*class="?at"?[^>]*)>', "gi"), "[span$1]").replace(/<[^>]*>/g, "").replace(/\[\[\-/g, "[").replace(/\-\]\]/g, "]").replace(new RegExp("\\[(/?(?:" + valiHTML.join("|") + "|img|span)[^\\]]*)\\]", "gi"), "<$1>"); if(!$.browser.mozilla){ content=content.replace(/\r?\n/gi, "<br>"); } document.getElementById("testdiv").innerHTML=content; },1); } //锁定编辑器中鼠标光标位置。。 function _insertimg(str){ var selection= window.getSelection ? window.getSelection() : document.selection; var range= selection.createRange ? selection.createRange() : selection.getRangeAt(0); if (!window.getSelection){ document.getElementById('testdiv').focus(); var selection= window.getSelection ? window.getSelection() : document.selection; var range= selection.createRange ? selection.createRange() : selection.getRangeAt(0); range.pasteHTML(str); range.collapse(false); range.select(); }else{ document.getElementById('testdiv').focus(); range.collapse(false); var hasR = range.createContextualFragment(str); var hasR_lastChild = hasR.lastChild; while (hasR_lastChild && hasR_lastChild.nodeName.toLowerCase() == "br" && hasR_lastChild.previousSibling && hasR_lastChild.previousSibling.nodeName.toLowerCase() == "br") { var e = hasR_lastChild; hasR_lastChild = hasR_lastChild.previousSibling; hasR.removeChild(e); } range.insertNode(hasR); if (hasR_lastChild) { range.setEndAfter(hasR_lastChild); range.setStartAfter(hasR_lastChild) } selection.removeAllRanges(); selection.addRange(range) } } //监控按enter键和空格键,如果按了enter键,则取消原事件,用<BR/ >代替。此处还等待修改!!!!!!如果后端能实现各个浏览器回车键产生的P,div, br的输出问题话就无需采用这段JS、 function enterkey(){ e = event.keyCode; if (e==13||e==32) { var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; event.returnValue = false; // 取消此事件的默认操作 if(document.selection && document.selection.createRange){ var myRange = document.selection.createRange(); myRange.pasteHTML('<br />'); }else if(window.getSelection){ var selection = window.getSelection(); var range = window.getSelection().getRangeAt(0); range.deleteContents(); var newP = document.createElement('br'); range.insertNode(newP); } //alert(document.getElementById("testdiv").innerHTML) } } </script> <style type="text/css"> .editbox{width:400px;height:200px;border:1px solid #000; overflow-x:hidden; overflow-y:auto; outline:none;} .editbox img{ margin:0 3px; display:inline;} </style> </head> <body> <div id="testdiv" contenteditable="true" class="editbox" onkeydown="enterkey()" >可以在任意文字后面插入图片或者文字哦!<br /></div> <div class="imgbox"> <img src="faceimg/1.gif"> <img src="faceimg/2.gif"> <img src="faceimg/3.gif"> <img src="faceimg/4.gif"> </div> <script type="text/javascript"> //此处必须防止在最下端。 var edt = document.getElementById("testdiv"); if(edt.addEventListener){ edt.addEventListener("paste",pasteHandler,false); }else{ edt.attachEvent("onpaste",pasteHandler); } </script> </body> </html> |
原文:http://www.cnblogs. […]
html5实现毛笔字功能
首先简单说一下原理:用html5的canvas功能实现画布及鼠标移动的监听,进而实于线条的绘制. 原理其实就这 […]
html5实现摇一摇功能
不废话,直接看实现代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
if (window.DeviceMotionEvent) { window.addEventListener('devicemotion',deviceMotionHandler, false); } var speed = 30;//控制摇一摇的速度 var x = y = z = lastX = lastY = lastZ = 0; function deviceMotionHandler(eventData) { var acceleration =event.accelerationIncludingGravity; x = acceleration.x; y = acceleration.y; z = acceleration.z; if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed || Math.abs(z-lastZ) > speed) { //这里写你的业务逻辑 alert(1); } lastX = x; lastY = y; lastZ = z; } |
html5获取用户当前位置信息(手机)
要实现这个功能其实很简单,先了解一下getCurrentPosition和watchPosition这两个ht […]
centos6.7编译安装nodejs5.3报g++版本太低的解决方法
编译安装时发现g++版本太低,编译不了,错误如下: [crayon-629233e7328c528535655 […]
coreseek/sphinx received zero-sized searchd response
在本地搭建好coreseek环境后,索引和搜索都没有问题,但是在高亮显示关键词的时候报了如下错误: [cray […]
linux常用命令
此文只作为个人使用linux时用到的命令,方便日常用到时快速查阅. 1.linux下设置环境变量 ; [cra […]
微信开发:实现微信公众号粉丝间的实时语音对话方法
最近公司做了一个项目,”在微信公众平台上实现粉丝间的实时对话”.这个项目需求看似并没有 […]
weiphp重置管理员密码的方法
管理员密码忘记了是一件很让人烦的事,我就遇到了,你也遇到了吧,呵呵… 查看weiphp的源码发现密 […]
js和php中匹配中文正责表达式的写法
项目中做表单验证时要求字段只能是中文和英文字母,于是想到用正责表达式来实现,js中的正责如下: [crayon […]
微信开发–php curl上传素材文件到微信服务器
最近在研究微信公众平台开发,感觉还是蛮有意思的,今天项目中需要上传语音文件到微信服务器,然后再发送给用户的功能 […]
X-editable “Uncaught TypeError: Cannot read property ‘defaults’ of undefined”
X-editable是一款不错的页面局部编辑jquery插件,使前端页面开发效率得到了极大的提高,同时用户友好 […]
html5实现中心点缩放图片功能
htm5的功能之强大我不清楚,但是其提供的一些API实现一些常见的网页功能是很便捷的,这样就不用再去找一些jq […]
sass自定义兼容的动画函数
不知道sass的同学请自行百度,这里不做具体介绍.且看本次主题的实现方法: 第一步:创建自定义函数 [cray […]
wow js添加自定义开门动画效果
wow js是一个基于animate.css实现的网页元素加载特效,具体的用法我就不多说,网上很多文章.源地址 […]
highcharts错误处理:Uncaught Highcharts error #14: www.highcharts.com/errors/14
今天在用highcharts做饼图的时候突然冒出这么个错误,然后是各种排除都未找到问题,索性直接点击这个链接进 […]
mogodb中的增,删,改,查(CURD)操作
mongodb中的数据格式采用的是json,用起来很方便也直观,今天了解了一下它的CURD操作,还是挺方便的, […]
mongodb在win7下的安装方法
mongodb在windows下的安装步骤一共分为六步: 第一步:到官网下载安装程序(我下载的是Windows […]
select2加载远程js数据的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<?php Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/js/select2/css/select2.min.css');?> <?php Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/select2-bootstrap.css');?> <?php Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/js/select2/js/select2.full.js');?> <?php Yii::app()->clientScript->registerScriptFile('http://top.oa.com/js/users.js');?> <script type="text/javascript"> $(function(){ var data = [{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }]; // var data = window._arrusers; //console.log(data); if (!window.oaUsers || !window.oaUsers.length) { window.oaUsers = []; window.oaUserMap = {}; var loadData = function() { if (typeof window._arrusers == 'undefined') { setTimeout(loadData, 300); } else { $.each(window._arrusers, function(k, userinfo) { oaUsers.push(userinfo[0]); oaUserMap[userinfo[0]] = userinfo[1]; }); } } loadData(); } $('.userPicker').select2({ containerCss: "wrap", data : {}, width:'150px', minimumInputLength: 1, openOnEnter: true, multiple: true, separator: ';', query: function (query) { var data = {results: []}; var customInput = false; $.each(oaUsers, function (k, user) { if(user.indexOf(query.term) > -1){ data.results.push({id: user, text: user}); } customInput = customInput && user !== query.term; return data.results.length < 5; }); if(customInput){ data.results.push({id: query.term, text: query.term}); } if(data.results.length){//console.log(data); query.callback(data); } } }); }) </script> |
php获取上个月最后一天的两种方法
在项目中有时候需要查询最近几天或过去几天这样的数据来展示给用户,这种情况用到的还是很多的,今天与大家分享一个获 […]
php遍历文件夹下的所有文件函数的写法
创建多级目录:php创建多级目录函数写法 删除多级目录:php删除多级目录函数的最简写法 读取树形目录结构的函 […]
php删除多级目录函数的最简写法
在前面有分享过php函数创建多级目录的方法,有创建就有删除,这两者是密不可分的.因此删除多级目录的最简写法如下 […]
php创建多级目录函数写法
在PHP中创建文件目录是经常要做的事,为了不用每次都去重新写,因此封装一个函数方全以后使用.代码如下: [cr […]
php截取字符长度的最简写法(可截取中文)
之前在网上看到有小伙伴提供的截取字符串长度的函数,一看就晕了,好大的一串.最近发现一个很简单的方法,而且支持中 […]
用php同步svn代码到网站
SVN是一个很强大的软件,它让团队协同开发变得列加方便.具体我不在些多说,今天的主题是怎么用PHP同步SVN中 […]
mysql中关联更新数据的写法(update join)
在开发中有时候两张表的数据是关联的,需要做数据的同步,程序写吗,呵呵…..当然可以,但是不想麻烦, […]
validationengine配合select2的验证方法
新版本的select2(4.0.0)已经可以支持validationenging的验证了,但是还有一点不完美的 […]
validationenging验证富文本(kindeditor)的方法
jquery validationenging是一个不错的前端验证插件,最近项目中用到它了,其他都OK,就是在 […]
jquery select2 Error: No select2/compat/inputData
今天在使用select2这个插件的时候,竟然不成功,debug一下发现如下错误: Error: No sele […]
C语言算法-二分查找
二分查找的效率极高,实现起来也不麻烦,在C语言中具体实现代码如下: [crayon-629233e73a9ca […]
c算法-杨辉三角
杨辉三角的定义请自行百度,在C语言中的实现代码如下: [crayon-629233e73add73633249 […]
C语言一次循环为二/三维数组赋值的方法
一.一次循环为二维数组赋值
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//一个循环为二维数组赋值 void evaluateAr(){ int ar[4][5] = { 0 }; int count = sizeof(ar) / sizeof(int);//求数组的个数 int col = sizeof(ar[0]) / sizeof(int);//求数组的列数 int num = 1; for (int i = 0; i < count; i++) { ar[i / col][i % col] = num++; printf("%d\n", ar[i / col][i % col]); } } |
二.一次循环为三 […]
C语言中实现输出”斐波那契数列”–c语言算法
“斐波那契数列”的具体定义大家可以百度一下,我在这就不多说了,在C语言中的具体实现代码 […]
yii simditor中Uncaught TypeError: Cannot read property ‘toLowerCase’ of undefined
在一个YII项目中用到了一个富文本编辑器simditor,这个富文本是开源的,而且出来样式也比较规范好看,挺不 […]
记事狗插件开发中deletetopic函数不起作用的解决方法
最近在开发一个记事狗插件,发现插件比原来直接改源码还是方便了很多,但是发现一个BUG,就是deletetopi […]
c语言中可变参数函数的写法
在C中可以自定义可变参数函数,这样做就可以很方便的传递任意函数,在有的时候是很方便的,具体写法如下: [cra […]
yii form表单get方式参数重复/叠加的解决办法
表单代码如下:
1 2 3 4 5 6 7 |
$form = ActiveForm::begin([ 'id' => 'search-form', 'method' => 'get', ]); echo $form->field($Model, 'id'); echo Html::submitButton('查询', ['class' => 'btn btn-primary']); ActiveForm::end(); |
咋看代码没什么错误,其实这个 […]
判断一个整数是否为质数–c语言算法
质数的概念是:只有1和它本身两个因数的自然数,叫质数(或称素数) [crayon-629233e73ce733 […]
计算整数的位数–c语算法
不用系统函数,计算一个整数的位数的写法,代码如下: [crayon-629233e73d2a060532296 […]
C语言算法:水仙花数
什么是水仙花数,我这里就不废话了,不知道的同学可同百度看一下,且看C语言的实现代码: [crayon-6292 […]
C语言算法:把十进制数转换成任意进制数的写法
来到这里不要说有现成的库函数啊,这只是一种自定义方法实现进制转换的功能,具体写法如下: [crayon-629 […]
腾讯算法面试题,50个台阶,一次可以上一个或两个台阶,一共有多少可能?
50个台阶,一次可以上一个或两个台阶,一共有多少可能? 用C语言具体写法如下: [crayon-629233e […]
C语言中打开,关闭,移动,缩放,显示和隐藏windows窗口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#include<stdio.h> #include<stdlib.h> #include<Windows.h> HWND win; //打开软件 void openSoft(){ ShellExecuteA(0, "open", "\"D:\\Program Files (x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe\"", 0, 0, 3); //system("\"D:\\Program Files (x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe\""); } //关闭软件 void closeSoft(){ system("taskkill /f /im navicat.exe"); } //移动软件 void moveSoft(int n){ if (n == 1600){ return; }else{ SetWindowPos(win, NULL, n, 0, 500, 500, 0); n += 10; Sleep(50); moveSoft(n); } } //缩放软件 void scaleSoft(int n){ if (n == 1600){ return; } else{ SetWindowPos(win, NULL, 0, 0, n, n*9/16, 0); n += 10; Sleep(50); scaleSoft(n); } } //显示/隐藏软件 void showHideWindow(){ ShowWindow(win, SW_HIDE); Sleep(1000); ShowWindow(win, SW_SHOW); Sleep(1000); showHideWindow(); } int main(){ //closeSoft(); openSoft(); Sleep(2000); win = FindWindowA("TXGuiFoundation", "QQ"); moveSoft(0); scaleSoft(0); showHideWindow(); getchar(); } |
上面是以QQ为例子,可以根据自己的实际情况选 […]
c语言中控制随机数的概率
程序开发中在很多场景下需要使用随机数,如文件名,抽奖等.在抽奖的过程中其实是可以控制中奖率的,那么具体的实现方 […]
忘记mysql root密码的解决方法
忘记各种密码是很常见的,当你很久没有上了mysql的情况下忘记密码也是很正常的事.在这种情况下请看如下解决方法 […]
C语方中命令行下一次打软件多个的方法
1 2 3 4 5 6 7 8 9 |
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void main(){ //system("for /l %i in (1,1,5) do calc"); char str[40]; sprintf(str,"for /l %%i in (1,1,3) do calc"); system(str); } |
上面是两种写法,在windows下直接用下面 […]
C语言中各类型的极大值和极小值
首先需要说明的一点是,不同系统平台的值可能会有出入,所以后面会用到跨平台的整型类型. [crayon-6292 […]
C语言中输出变量二进制的方法
有时候为了快速方便的计算一个数的进制数,我们可以用计算器和程序的方法,在C语言中的具体实现方法如下: [cra […]
修改jquery ui autocomplete filter(过滤)数据的方法
项目中要用到自动提醒这个功能,数据又不是在本地,只能通过js到其他服务器上获取(当然可以考虑在服务端取数据)。 […]
记事狗4.7.4安装时setting权限问题
记事狗4.7.4在安装时出现setting文件夹都没有可写权限,我在wamp环境下安装没有问题,但是在iis服 […]
bootstrap multiselect中单选nonSelectedText不起作用的解决方法
bootstrap multiselect是一个很不错的下拉列表插件,支持多选,单选,过滤得.总之功能很强大. […]
解决yii中jquey冲突的问题
在yii中渲染视图有两种常用的方法:$this->render(‘index’) […]
yii renderPartial ajax validate(ajax验证)
yii的自带验证很好用,可以前后台一起实现,这样就少写了很多js代码. 今天在做项目的时候用yii中的rend […]
yii not supplied when querying the table
今天在用yii框架做数据更新的时假突然报了这个错误: The value for the column  […]
yii一次写入多条记录的方法
今天在用yii做项目的时候,需要用到一次写入多条数据这样的操作,但又不想自己去拼接sql语句,经过一翻查找折腾 […]
linux下开启php扩展的方法(mysql_pdo)
本文内空来自phpboy,请大家支持原创. 在安装php的时候有些扩展可能没有进行编译安装,后期要用到就需要加 […]
yii验证字段值在数据库中的唯一性
yii框架中的验证功能很不错,可以让开发人员省去很多写js的时间,扩展也灰常不错.这阵子在用它做项目,开发效率 […]
php接收c++ post过来的数据
在开发过程中经常会遇到不同语言之间的交换,每种语言的语法又不尽相同.如果对交换的语言不熟悉的话,很可能会出现一 […]
java位运算方法和规则
位运算执行效率高,因为是直接在内存中操作.但是计算相对来说比较复杂,这就让很多程序员望而却步,其实只要掌握了一 […]
java排序的方法–插入排序
继冒泡排序和选择排序后,这是java排序的第三个方法:插入排序,此排序算法比前两种的效率都会高出不少,在后面我 […]
java排序的方法–选择排序
前面有计到java排序的方法–冒泡排序,今天继续回顾java中的排序方法-选择排序,这种排序方法相对来说比冒泡 […]
java排序的方法–冒泡排序
排序算法有很多种,各种语言的写法都差不多,这其中关键是思想,有了好的思路实现起来就不麻烦了,今天分享一个最经典 […]
php中全角转半角的方法(函数)
各种项目中,需要用户输入数据的地方很多,如注册 评论 留言等等.但是,对于程序员们来说这里需要面对一个问题就是 […]
jquery ui autocomplete实现多选的方法
autocomplete是一个不错的自动提醒插件,比较好用的是jui中的autocomplete,项目中需要用 […]
js设置图片垂直居中的方法
闲来没事写了个图片轮播来玩,以温习一下js的基础知识,当然很多还是有借签前人的代码.但是发现一个共同的问题,图 […]
nivo-slider插件设定图片高度的方法(image size)
客户的网站上需要用到图片轮播这个功能,网上找了一下这种插件不少,最后决定用nivo-slider.刚开始的时候 […]
js刷新iframe父窗口的方法
一.场景说明 在一个页面中点击操作会弹出一个iframe框,以上传文件,上传完后需要刷新父窗口,及时展示刚上传 […]
yii中select字段时用别名的设置方法
在用yii中的ar做数据查询的时候,我们可能会有如下的需求 [crayon-629233e74558e0939 […]
phpExcel列数据自动换行的方法
phpexcel是一个强大PHP的功能类,可以用php导入和导出excel文件,在我们做导出数据的时候,当一个 […]
sublime text 3(Build 3059)激活码,验证可用
sublime text是不个轻量级的code神器,今天注册了一下,完全可以,以下是licence文件: [c […]
CI框架中读取logs下日志文件的方法
由于没有服务器的权限,又想看一下服务器上的日志文件,这时候就有点为难了。 我讲的这个当然是在CI框架中啊,其实 […]
phpexcel输出到页面(在线预览)
phpexcel是不个很强的的功能类,最近项目中用到。在coding过程中发现每次都会down一个文件下来,就 […]
php接收c++ post数据
在开发过程中经常会遇到不同语言之间的交换,每种语言的语法又不尽相同.如果对交换的语言不熟悉的话,很可能会出现一 […]
css3更换样式表,响应式布局
现在响应式布局已经是越来越流行了,特别是适用于手机网站,至于什么是响应式布局百度一下你就知道了,下面以一个简单 […]
用谷歌浏览器模拟手机的方法
现在移动开发变得越来越HOT了,各种公司对这方面的需求也越来越多。但是对于前端开发者来说,兼容各种不同屏幕尺寸 […]
CI删除二级目录下网站的index.php
这一阵子在鼓捣CI框架,它的路由方式是http://localhost/myweb/index.php/con […]
objective-c中反射类和方法的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
// // main.m // 反射 // #import <Foundation/Foundation.h> #import "Person.h" #pragma mark 反射(用字符串创建类或方法) void reject(){ //类的反射 NSString *str = @"Person"; Class person = NSClassFromString(str); Person *p = [[[person alloc] init] autorelease]; NSLog(@"%@", p); NSString *cname = NSStringFromClass(person);//类名转变成字符串 NSLog(@"%@", cname); } void reject1(){ //方法的反射 NSString *str1 = @"Person"; NSString *str2 = @"tt"; Class class = NSClassFromString(str1); Person *p = [[[class alloc] init] autorelease]; SEL sel = NSSelectorFromString(str2); [p performSelector:sel];//此方法必须在Person类中进行定义和实现 //方法转化成字符串 NSString * str3 = NSStringFromSelector(sel); NSLog(@"%@", str3); } int main(int argc, const char * argv[]) { @autoreleasepool { //reject(); reject1(); } return 0; } |
objective-c中NSObject的常用方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
// // main.m // NSObject常用方法 // #import <Foundation/Foundation.h> #import "Student.h" #import "Person.h" #pragma mark NSObject的常用方法 void objUse(){ Student *stu = [[Student alloc] init]; //判断是否属于或继承于某个类 if ([stu isKindOfClass:[Person class]]){ NSLog(@"stu属于或继承于Person类"); } //判断是否属于某个类 if ([stu isMemberOfClass:[Person class]]){ NSLog(@"stu属于Person类"); }else{ NSLog(@"stu不属于Person类"); } //调用类的成员方法的两种方法 //1.直接调用 [stu test]; //2.间接调用 [stu performSelector:@selector(test)]; //2.1带参数的调用方法 [stu performSelector:@selector(test1:) withObject:@"tom"]; //2.2延迟调用,此处看不到效果,需要在ios中才能看到效果 [stu performSelector:@selector(test1:) withObject:@"lily" afterDelay:5]; [stu release]; } int main(int argc, const char * argv[]) { @autoreleasepool { objUse(); } return 0; } |
php返转中文字符串的方法
在PHP中有一个现成的函数可以实现字符串的返转,如下: [crayon-629233e748714210354 […]
You can’t specify target table ‘d1’ for update in FROM clause
需要更新数据,写了酱紫的一条sql语句:
1 |
update d1 set uname='good' where id in (select * from d1 where id>15 and id<22); |
语 […]
object-c中日期类(NSDate)的具体使用方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
// // main.m // Date的用法 // // Created by greezen on 14-3-9. // Copyright (c) 2014年 greezen. All rights reserved. // #import <Foundation/Foundation.h> void date1(){ NSTimeZone *tz = [NSTimeZone systemTimeZone]; NSDate *date = [NSDate date];//格林威治时间 NSInteger integer = [tz secondsFromGMTForDate:date];//获取格林威治时间和本地时间相差的秒数 date = [NSDate dateWithTimeIntervalSinceNow:integer];//本地时间 //从1970-01-01 00:00:00 开始10秒后的时间 date = [NSDate dateWithTimeIntervalSince1970:10]; date = [NSDate distantFuture];//将来的某一个时间 date = [NSDate distantPast];//过去的某一个时间 NSLog(@"%@", date); //返回从1970-1-1开始走过的毫秒数 NSTimeInterval itv = [date timeIntervalSince1970]; NSLog(@"%.0f", itv); } #pragma mark 日期的比较 void dateCompare(){ NSDate *date = [NSDate date]; NSDate *date1 = [NSDate date]; NSDate *cdate = [date earlierDate:date1];//两个时间中比较早的一个时间 cdate = [date laterDate:date1];//两个时间中比较晚的一个时间 NSComparisonResult res = [date compare:date1]; if (res == NSOrderedSame) { NSLog(@"两个时间一样"); }else if (res == NSOrderedAscending){ NSLog(@"第一个时间早于第二个时间"); }else if (res == NSOrderedDescending){ NSLog(@"第一个时间晚于第二个时间"); } NSLog(@"date=%@,date1=%@,earlierDate=%@", date, date1, cdate); } #pragma mark 日期的格式化 void dateFormate(){ //法一 NSDate *date = [NSDate date]; date = [date dateWithCalendarFormat:nil timeZone:[NSTimeZone timeZoneWithName:@"Asia/Shanghai"]]; //法二 NSDate *date1 = [NSDate date]; NSDateFormatter *formater = [[[NSDateFormatter alloc] init] autorelease]; formater.dateFormat = @"yyyy年MM月dd日 HH时mm分ss秒"; //formater.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"]; NSString *datestring = [formater stringFromDate:date1]; NSLog(@"%@", datestring); } #pragma mark 取出日期的一部分(年 月 日 时 分 秒) void calendar(){ NSCalendar *cal = [NSCalendar currentCalendar]; NSInteger flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; NSDateComponents *com = [cal components:flags fromDate:[NSDate date]]; NSLog(@"%li", [com minute]); } int main(int argc, const char * argv[]) { @autoreleasepool { //date1(); //dateCompare(); //dateFormate(); calendar(); } return 0; } |
object-c中将空值(null)加入到数组中的方法(NSNull)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// // main.m // NSNull的用法 // #import <Foundation/Foundation.h> void null(){ //nsnull是单例模式 NSNull *nl = [NSNull null]; NSNull *nl1 = [NSNull null]; NSMutableArray *arr = [NSMutableArray array]; [arr addObject:nl]; NSNull *nl2 = [arr lastObject]; NSLog(@"%i", nl2 == nl);//说明只有一个实例对象 } int main(int argc, const char * argv[]) { @autoreleasepool { null(); } return 0; } |
object-c中包装(NSValue)自定义结构体的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
// // main.m // NSValue // #import <Foundation/Foundation.h> void value(){ /*NSRect rect = NSMakeRect(0, 0, 10, 11); //将结构体变量包装成一个对象 NSValue *value = [NSValue valueWithRect:rect]; NSArray *arr = [NSArray arrayWithObjects:value, nil]; NSValue *v1 = [arr lastObject]; NSRect rect1 = [v1 rectValue]; BOOL res = CGRectEqualToRect(rect1, rect); NSLog(@"%i", res);*/ CGPoint point = CGPointMake(5, 9);//创建一个点 NSValue *v = [NSValue valueWithPoint:point];//将点结构体包装成一个对象 NSArray *arr = [NSArray arrayWithObjects:v, nil];//将对象放入到数组中 NSValue *v1 = [arr lastObject];//取出数组中最后一个元素,即刚添加的对象 CGPoint point1 = [v1 pointValue];//将对象解包成结构体 NSLog(@"%i", CGPointEqualToPoint(point1, point));//判断放入数组之前和从数组中取出来后的是否一致 } //包装自定义结构体 //定义结构体 typedef struct{ int year; int month; int day; int hour; int minutes; int secondes; } Date; void value2(){ Date date = {2014,3,9,16,06,59}; char *ctype = @encode(Date); NSValue *value = [NSValue value:&date withObjCType:ctype];//第一个参数是结构体的地址,第二个参数是根据结构体类型生成对应的类型描术字符串 NSMutableArray *arr = [NSMutableArray array]; [arr addObject:value]; NSValue *value1 = [arr lastObject]; Date date1 ; [value1 getValue:&date1];//从包装对象中取出结构体的值(解包) NSLog(@"year=%i month=%i day=%i hour=%i minutes=%i secondes=%i", date1.year, date1.month, date1.day, date1.hour, date1.minutes, date1.secondes); } int main(int argc, const char * argv[]) { @autoreleasepool { //value(); value2(); return 0; } |
object-c中把基本数据类型加入到数组中的方法(NSNumber)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// // main.m // NSNumber // #import <Foundation/Foundation.h> //把基本数据类型加入到数组中的方法 void number(){ NSNumber *num= [NSNumber numberWithFloat:2.35f]; NSLog(@"num1=%@",num); NSMutableArray *arr = [NSMutableArray array]; [arr addObject:num]; //取出来后不会自动解包,需要手动转换类型 NSNumber *num1 = [arr lastObject]; NSLog(@"num1=%.2f",[num1 floatValue]); } int main(int argc, const char * argv[]) { @autoreleasepool { number(); } return 0; } |
object-c中可变字典(NSMutableDictionary)的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
// // main.m // NSMutableDictionary // #import <Foundation/Foundation.h> #import "Pepole.h" //引入外部文件的方法:右键项目-》Add files to ...-》选择文件并选择copy文件 //引入如果出现编译问题(link error),1.Product->clean;2.左击项目-》build phases->compaile sources->添加刚加入的m文件 void mdict(){ //创建一个空字典 NSMutableDictionary *dict = [NSMutableDictionary dictionary]; //向字典中添加元素 Pepole *p1 =[Pepole pepoleWithName:@"p1"]; [dict setObject:p1 forKey:@"key1"]; [dict removeObjectForKey:@"key1"];//删除指定的字典元素 [dict removeAllObjects];//删除所有的字典元素 [dict addEntriesFromDictionary:[NSDictionary dictionaryWithObject:p1 forKey:@"p2"]];//把字典添加到字典中 NSLog(@"dict is %@", dict); } int main(int argc, const char * argv[]) { @autoreleasepool { mdict(); } return 0; } |
phpcms v9登录后台提示验证码错误的解决方法
想研究一下phpcms的相关功能和代码,今天鼓捣了一下,从官网下载源码安装很成功!但是一进后台却是一个错误页面 […]
object-c中字典(NSDictionary)的创建 遍历和用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
// // main.m // NSDictionary的创建和操作 // #import <Foundation/Foundation.h> #pragma mark 字典的创建 void dictCreate(){ NSDictionary *dict = [NSDictionary dictionaryWithObject:@"tom" forKey:@"name"];//只有一对元素的字典 dict = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"tom", @"20" ,@"male" , nil] forKeys:[NSArray arrayWithObjects:@"name", @"age", @"sex", nil]];//用数组分别做键和值 dict = [NSDictionary dictionaryWithObjectsAndKeys: @"tom", @"name" , @"male", @"sex" , @"22", @"age", nil];//值=》键 NSLog(@"%@", dict); } #pragma mark 字典的使用 void dictUse(){ NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"tom", @"name" , @"male", @"sex" , @"22", @"age", nil]; NSArray *arr = [dict allKeys];//取出所有的key arr = [dict allValues];//取出所有的值 id obj = [dict objectForKey:@"age"];//根据键取值 arr = [dict objectsForKeys:[NSArray arrayWithObjects:@"name", @"sex", @"class", nil] notFoundMarker:@"notFound"];//根据数组中的键取值,没有的以notFound替换 NSInteger len = dict.count;//键值对数 NSString *path = @"/Users/greezen/Desktop/dict.xml"; if ([dict writeToFile:path atomically:YES]){ NSLog(@"写入文件成功"); }else{ NSLog(@"写入文件失败"); } dict = [NSDictionary dictionaryWithContentsOfFile:path];//从文件中读取以创建字典 NSLog(@"%@", dict); } #pragma mark 字典的遍历 void dictFor(){ NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: @"tom", @"name" , @"male", @"sex" , @"22", @"age", nil]; //法一 for (id key in dict) { NSLog(@"%@=>%@", key, [dict objectForKey:key]); } //法二 NSEnumerator *enu = [dict keyEnumerator]; id key = nil; while (key = [enu nextObject]) { NSLog(@"%@->%@", key, [dict objectForKey:key]); } enu = [dict objectEnumerator]; id obj = nil; while(obj = [enu nextObject]){ NSLog(@"%@", obj); } //法三 [dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"%@-->%@", key, [dict objectForKey:key]); }]; } int main(int argc, const char * argv[]) { @autoreleasepool { //dictCreate(); //dictUse(); dictFor(); } return 0; } |
object-c中可变数组(NSMutableArray )的创建和操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
// // main.m // NSMutableArray // #import <Foundation/Foundation.h> #pragma mark 可变数组的创建和添加 删除 void mutableArray(){ NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"adb", @"ddd", @"333", nil]; //往数组中添加元素 [arr addObject:@"111"]; //从数组中移除指定元素 [arr removeObject:@"adb"]; [arr removeObjectAtIndex:1]; NSMutableIndexSet *index = [NSMutableIndexSet indexSet]; [index addIndex:0]; [index addIndex:1]; [arr removeObjectsAtIndexes:index]; //移除数组中的所有元素 //[arr removeAllObjects]; //[arr removeLastObject];//移除数组中的最后一个元素 NSLog(@"array is %@", arr); } #pragma mark 可变数组的操作-》替换 void mutableArrayReplace(){ NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"a", @"b", @"c", nil]; [arr replaceObjectAtIndex:0 withObject:@"aa"]; NSRange rang = NSMakeRange(0, 2); NSArray *arr1 =[NSArray arrayWithObjects:@"e", @"f", nil]; [arr replaceObjectsInRange:rang withObjectsFromArray:arr1 range:rang]; NSLog(@"arr is %@", arr); } #pragma mark 可变数组的排序 void mutableArraySort(){ NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"5", @"1", @"-9",@ "0", @"5555", nil]; [arr sortUsingSelector:@selector(compare:)]; NSLog(@"arr is %@", arr); } int main(int argc, const char * argv[]) { @autoreleasepool { //mutableArray(); //mutableArrayReplace(); mutableArraySort(); } return 0; } |
学生各门课程成绩统计SQL语句大全
学生成绩表(stuscore): 姓名:name 课程:subject 分数:score 学号:stuid 张 […]
NSArray中的排序方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
// // main.m // NSArray数组的排序 // #import <Foundation/Foundation.h> #import "Pepole.h" #pragma mark 数组的普通排序 void arraySort1(){ NSArray *arr = [NSArray arrayWithObjects:@"hello", @"world", @"1", @"5", nil]; NSArray *arr1 = [arr sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"arr1 is %@", arr1); } #pragma mark 数组的自定义排序 void arraySort2(){ Pepole *p = [Pepole pepole:@"san" :@"zhang"]; Pepole *p1 = [Pepole pepole:@"si" :@"li"]; Pepole *p2 = [Pepole pepole:@"wu" :@"wang"]; Pepole *p3 = [Pepole pepole:@"liu" :@"zhao"]; Pepole *p4 = [Pepole pepole:@"si" :@"zhao"]; NSArray *arr = [NSArray arrayWithObjects:p, p1, p2, p3, p4, nil]; NSArray *arr1 = [arr sortedArrayUsingSelector:@selector(comparePepole:)]; NSLog(@"arr1 is %@", arr1); } #pragma mark 数组的自定义排序(block) void arraySort3(){ Pepole *p = [Pepole pepole:@"san" :@"zhang"]; Pepole *p1 = [Pepole pepole:@"si" :@"li"]; Pepole *p2 = [Pepole pepole:@"wu" :@"wang"]; Pepole *p3 = [Pepole pepole:@"liu" :@"zhao"]; Pepole *p4 = [Pepole pepole:@"si" :@"zhao"]; NSArray *arr = [NSArray arrayWithObjects:p, p1, p2, p3, p4, nil]; NSArray *arr1 = [arr sortedArrayUsingComparator:^NSComparisonResult(Pepole *obj1, Pepole *obj2) { NSComparisonResult res = [obj1.lastname compare:obj2.lastname]; if (res == NSOrderedSame) {//如果姓氏相同,则比较名 res = [obj1.firstname compare:obj2.firstname]; } return res; }]; NSLog(@"arr1 is %@", arr1); } #pragma mark 数组按描述排序 void arraySort4(){ Pepole *p = [Pepole pepoleWithBander:@"san" :@"zhang" :@"apple"]; Pepole *p1 = [Pepole pepoleWithBander:@"si" :@"li" :@"samsung"]; Pepole *p2 = [Pepole pepoleWithBander:@"wu" :@"wang" :@"samsung"]; Pepole *p3 = [Pepole pepoleWithBander:@"liu" :@"zhao" :@"apple"]; Pepole *p4 = [Pepole pepoleWithBander:@"si" :@"zhao" :@"samsung"]; NSArray *arr = [NSArray arrayWithObjects:p, p1, p2, p3, p4, nil]; NSSortDescriptor *desBander = [NSSortDescriptor sortDescriptorWithKey:@"phone.bander" ascending:YES]; NSSortDescriptor *deslastname = [NSSortDescriptor sortDescriptorWithKey:@"lastname" ascending:YES]; NSSortDescriptor *desfirstname = [NSSortDescriptor sortDescriptorWithKey:@"firstname" ascending:YES]; NSArray *desarr = [NSArray arrayWithObjects:desBander, deslastname, desfirstname, nil]; NSArray *arr1 = [arr sortedArrayUsingDescriptors:desarr]; NSLog(@"arr1 is %@", arr1); } int main(int argc, const char * argv[]) { @autoreleasepool { //arraySort1(); //arraySort2(); //arraySort3(); arraySort4(); } return 0; } |
pepole.h头文件 [cr […]
object-c中创建和遍历数组的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 |
// // main.m // 数组的创建和遍历 // #import <Foundation/Foundation.h> #import "Person.h" #pragma mark 创建数组的方法 void createArray(){ //创建空数组,这个数组中没有元素,且不可以添加 NSArray *arr = [NSArray array]; //创建只有一个元素的数组 arr = [NSArray arrayWithObject:@"ddd"]; //创建有多个元素的数组(nil代表数组的结束) arr = [NSArray arrayWithObjects:@"a", @"b", @"c", nil]; arr = [[NSArray alloc] initWithObjects:@"abc", @"123", @"555", @"efg", nil]; NSLog(@"数组的元素个数有:%zi", arr.count); [arr release]; } #pragma mark 数组的简单使用 void useArray(){ NSArray *arr = [NSArray arrayWithObjects:@"abc", @"123", @"555", @"efg", nil]; //查看数组中是否有某元素 if ([arr containsObject:@"123"]) { NSLog(@"数组中存在此元素"); }else{ NSLog(@"数组中不存在此元素"); } //获取数组中的最后一个元素 NSLog(@"数组中最后一个元素是%@", [arr lastObject]); //取出数组中指定位置的元素 NSLog(@"第三个元素是:%@", [arr objectAtIndex:2]); //元素在数组中的位置 NSLog(@"123在数组中的%zi", [arr indexOfObject:@"123"]); } #pragma mark 数组的内存管理 void arrayMemery(){ //person静态方法中初始化了 Person *p = [Person person]; Person *p1 = [Person person]; Person *p2 = [Person person]; //当一个对象加入到数组中是,这个对象的计数器会加1 NSLog(@"%zi", [p retainCount]); NSArray *arr = [[NSArray alloc] initWithObjects:p, p1, p2, nil]; NSLog(@"%zi", [p retainCount]); //当数组销毁时,所有数组中的对象计数器都会减1 NSLog(@"数组中的元素个数是%zi", arr.count); [arr release]; NSLog(@"%zi", [p retainCount]); } #pragma mark 给数组中的所有元素发送消息(都调用一个方法) void arrayMessage(){ Person *p = [Person person]; Person *p1 = [Person person]; Person *p2 = [Person person]; NSArray *arr = [NSArray arrayWithObjects:p, p1, p2, nil]; [arr makeObjectsPerformSelector:@selector(test)]; [arr makeObjectsPerformSelector:@selector(test1:) withObject:@"Hello!"]; } #pragma mark 遍历数组的第一种方法 void arrayFor1(){ NSArray *arr = [NSArray arrayWithObjects:@"1", @"2", @"a", @"b" , nil]; NSUInteger len = arr.count; for (int i = 0 ; i<len ; i++) { NSLog(@"数组中第%i个元素是:%@", i+1 , [arr objectAtIndex:i]); } } #pragma mark 遍历数组的第二种方法 void arrayFor2(){ NSArray *arr = [NSArray arrayWithObjects:@"11", @"22", @"aa", @"bb" , nil]; int i = 0; for (id obj in arr) { NSLog(@"数组中第%i个元素是:%@", i+1 , obj); i++; } } #pragma mark 遍历数组的第三种方法(block) void arrayFor3(){ Person *p = [Person person]; NSArray *arr = [NSArray arrayWithObjects:p, @"11", @"22", @"aa", @"bb", @"cc" , nil]; [arr enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { NSLog(@"数组中第%zi个元素是:%@",idx+1 , obj); if (idx == 3) { *stop = YES; } }]; } #pragma mark 遍历数组的第四种方法(迭代器) void arrayFor4(){ Person *p = [Person person]; NSArray *arr = [NSArray arrayWithObjects:p, @"11", @"22", @"aa", @"bb", @"cc" , nil]; //获取数组的迭代器 NSEnumerator *enu = [arr objectEnumerator]; //获取数组反向的迭代器,从最后一个元素开始遍历 //NSEnumerator *enu = [arr reverseObjectEnumerator]; NSObject *obj = nil; int i = 0; //返回数组迭代器中的所有元素,必须放在nextObject之前才会有,不然不会有值 NSArray *arr1 = [enu allObjects]; NSLog(@"%@", arr1); while (obj = [enu nextObject]) { NSLog(@"数组中第%zi个元素是:%@",i+1 , obj); i++; } } int main(int argc, const char * argv[]) { @autoreleasepool { //createArray(); //useArray(); //arrayMemery(); //arrayMessage(); //arrayFor1(); //arrayFor2(); //arrayFor3(); arrayFor4(); } return 0; } |
NSString中的常用方法锦集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 |
// // main.m // string常用方法 // #import <Foundation/Foundation.h> void test(){ NSString *str = @"i am greezen"; NSLog(@"%@", [str uppercaseString]);//转换成全部大写 NSLog(@"%@", [str lowercaseString]);//转换成全部小写 NSLog(@"%@", [str capitalizedString]);//转换成首字线大写 } #pragma mark 字符串的比较 void compare(){ //比较两个字符串内容是否一样 Boolean b=[@"abc" isEqualToString:@"abc"]; NSLog(@"%i", b); //比较两个字符串ascii码值的大小 NSComparisonResult res = [@"abc" compare:@"Abc"]; if (res == NSOrderedAscending) { NSLog(@"左 > 右"); }else if(res == NSOrderedSame){ NSLog(@"左 = 右"); }else if (res == NSOrderedDescending){ NSLog(@"左 < 右"); } } #pragma mark 字符串的搜索 void search(){ NSString *str = @"I am a search string!"; //是否以什么开始 NSLog(@"%i以i开始", [str hasPrefix:@"I"]); NSLog(@"%i是否以string!结尾", [str hasSuffix:@"string!"]); //查找字符串在另一字符串中的位置 NSRange range = [str rangeOfString:@"searchs"]; if (range.length) { NSLog(@"search range is %@",NSStringFromRange(range)); }else{ NSLog(@"haven't find search"); } //从字符串后面开始查找,如果找到第一个则不再往下面查找 range = [str rangeOfString:@"s" options:NSBackwardsSearch]; NSLog(@"s range is %@", NSStringFromRange(range)); //指定范围搜索字符串 NSRange fw = {7,14}; range = [str rangeOfString:@"a" options:NSBackwardsSearch range:fw]; NSLog(@"a range is %@", NSStringFromRange(range)); } #pragma mark 字符串的截取 void cut(){ NSString *str = @"abcdefghijk1234567"; NSLog(@"截取得到的字串是:%@", [str substringFromIndex:3]); NSLog(@"截取得到的字串是:%@", [str substringToIndex:3]); NSRange range = NSMakeRange(5, 10); NSLog(@"截取得到的字串是:%@", [str substringWithRange:range]); NSString *str1 = @"1-2-d-ef-g-hello"; //按字符分隔字串为一个数组 NSArray *arr = [str1 componentsSeparatedByString:@"-"]; NSLog(@"分解后的数组为:%@", arr); NSString *str2 = [arr objectAtIndex:0]; NSLog(@"数组中第0个位置的元素是:%@", str2); } #pragma mark 字符串与路径 void path(){ //创建一个数组,并将数组拼接成一个路径 NSMutableArray *arr = [NSMutableArray array]; [arr addObject:@"hello"]; [arr addObject:@"ddd"]; [arr addObject:@"world"]; NSLog(@"拼接后的路径字串是:%@", [NSString pathWithComponents:arr]); //把一个咱径分解到一个数组 NSString *path = @"Users/greezen/Desktop"; NSArray *arr1 = [path pathComponents]; NSLog(@"路径数组是:%@", arr1); //判断路径是否为绝对路径 if ([path isAbsolutePath]) { NSLog(@"路径是绝对路径"); }else{ NSLog(@"路径不是绝对路径"); } //路径中最后一个目录文件 NSLog(@"路径中最后一个目录文件是:%@",[path lastPathComponent]); //删除路径中最后一个目录 NSLog(@"删除路径中最后一个目录后,路径是:%@",[path stringByDeletingLastPathComponent]); //在路径后面再加一个文件目录 NSLog(@"在路径后面再加一个文件目录%@", [path stringByAppendingPathComponent:@"aaa/bbb/a.txt"]); } #pragma mark 文件扩展名 void ext(){ NSString *file = @"Users/greezen/Desktop/sing.mp3"; //路径中文件的扩展名 NSLog(@"文件的扩展名是:%@", [file pathExtension]); //删除尾部的扩展名 NSLog(@"删除扩展名后是:%@", [file stringByDeletingPathExtension]); //在尾部添加扩展名 NSLog(@"添加扩展名后是:%@", [file stringByAppendingPathExtension:@"bak"]); } #pragma mark 其它用法 void other(){ //字符的长度(字符个数) NSString *str = @"字符的长度(字符个数)"; NSLog(@"str的长度是:%zi",[str length]); //字符串转换成整数 NSString *s = @"12345"; NSLog(@"%i", [s intValue]); //字符串转换成小数 NSLog(@"%.2f", [s floatValue]); } #pragma mark 可变字符串 void mutstr(){ NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10]; //初始化 [str setString:@"abc"]; NSLog(@"%@", str); //添加字符串 [str appendString:@"123"]; NSLog(@"%@", str); //添加格式化字串 [str appendFormat:@"!name is %@,age is %i", @"Tom", 21]; NSLog(@"%@", str); //替换字符串 [str replaceCharactersInRange:[str rangeOfString:@"Tom"] withString:@"Lily"]; NSLog(@"%@", str); //插入字符串 [str insertString:@".Sex is female" atIndex:[str length]]; NSLog(@"%@", str); //删除字符串 [str deleteCharactersInRange:[str rangeOfString:@"123"]]; NSLog(@"%@", str); [str release]; } int main(int argc, const char * argv[]) { @autoreleasepool { //search(); //cut(); //path(); //ext(); //other(); mutstr(); } return 0; } |
ActiveMQ中用mqttws3.1创建持久订阅(durable subscriber)
这段时间在研究消息对列相关技术.现在基本确定的方案是:ActiveMQ+mqttws3.1+php(#c)来实 […]
mysql中加密数据的几种方法
数据做为这个时代最为看重的一种资源,那么数据安全就显得格外重要了,做为一个合格的程序员,必须时刻考虑如何开写代 […]
object-c中NSString创建字符串的常用方法(读写文件)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
// // main.m // nsstring创建方法 // #import <Foundation/Foundation.h> //nsstring的创建方法 void test(){ //法一 NSString *str = @"I am a string!"; NSLog(@"%@", str); //法二 NSString *str1 = [[NSString alloc] init]; str1 = @"I am str1"; NSLog(@"%@", str1); [str1 release]; //法三 NSString *str2 = [[NSString alloc] initWithString:@"I am str2"]; NSLog(@"%@", str2); [str2 release]; //法四 NSString *str3 = [[NSString alloc] initWithUTF8String:"I am str3"]; NSLog(@"%@", str3); [str3 release]; //法五 NSString *str4 = [[NSString alloc] initWithFormat:@"My age is %i, my money is %.2f", 28, 10000.36f]; NSLog(@"%@", str4); [str4 release]; //法六 NSString *str5 = [NSString stringWithString:@"I am str5"]; NSLog(@"%@", str5); //法七 NSString *str6 = [NSString stringWithUTF8String:"I am str6"]; NSLog(@"%@", str6); //法八 NSString *str7 = [NSString stringWithFormat:@"My name is %@, age is %i", @"tom", 30]; NSLog(@"%@", str7); //法九,从文件中取得字符串 NSError *error=nil; NSString *str8 = [NSString stringWithContentsOfFile:@"/Users/greezen/Desktop/a.txt" encoding:NSUTF8StringEncoding error:&error]; if (error == nil) { NSLog(@"%@", str8); }else{ NSLog(@"error info is %@", error); } //法十,从远程服务器上获取字串(url) NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSError *err = nil; NSString *str9 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; if (err == nil) { NSLog(@"%@", str9); }else{ NSLog(@"error info is %@", err); } NSLog(@"%@",str9); } //写文件 void test1(){ NSString *path = @"/Users/greezen/Desktop/abc/b.txt"; NSError *err; NSString *str10 = @"I am str10我是程序写入的内容!"; Boolean res = [str10 writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&err]; if (res) { NSLog(@"写入文件成功!"); }else{ NSLog(@"写入文件失败!%@", [err localizedDescription]); } } int main(int argc, const char * argv[]) { @autoreleasepool { //test(); test1(); } return 0; } |
用php实现向ActiveMQ中的topic发送信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php // 引入类文件 require_once("Stomp.php"); //创建连接 $con = new Stomp("tcp://localhost:61613"); $con->clientId = "testwwsd33"; // 连接 $con->connect(); // 发送信息给topic tt1(必须先写/topic然后才是你要发送到的topic名,如tt1) $con->send("/topic/tt1", "ajdfqjeD肯肯kj09840923489852(*&&*76675", array('persistent'=>'true')); echo "Sent message with body 'test'\n"; // 断开连接 $con->disconnect(); ?> |
代码中引入的文件是从http: […]
oc语法中block的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
// main.m // block // #import <Foundation/Foundation.h> #import "Button.h" typedef int (^MyCalc) (int, int); void test(){ //block的第一种定义方法 int (^Calc) (int, int) = ^(int a, int b){ return a+b; }; int c = Calc(9,2); NSLog(@"c is %i",c); } void test1(){ //block的第二种定义方法 int d = 9; // __block int d = 31;//若想在block中修改外面参数的值必须如此定义 MyCalc mycalc = ^(int a, int b){ //d = 21; NSLog(@"d is %i", d); return a*b; }; NSLog(@"result is %i", mycalc(9,3)); } int main(int argc, const char * argv[]) { @autoreleasepool { test(); test1(); Button *btn = [[[Button alloc] init] autorelease]; btn.blocklisenter = ^(Button *btn){ NSLog(@"Button %@ is clicked!",btn); }; [btn click]; } return 0; } |
node js+mqttclient实现数据实时推送
由于项目中涉及到股票交易,所以对数据的实时性要求很高.最开始用的是http协议,每隔几秒钟请求一次服务器.后来 […]
c语言中计算字符的个数
在c语言中计算字符个数的程序代码如下,其中包手计数字母,数字,空格,和其他 [crayon-629233e74 […]
记事狗新版(4.6.1)添加module的方法
在记事狗微博二次开发–添加module(模型层)的方法一文中提到了如何在3.0版记事狗中如何添加module的 […]
记事狗升级错误(table name is invalid, table login_log is not exists)
今天心血来潮,把我的记事狗程序从4.0升级到4.6,以体验新版本的新功能.但是升级完后重新登录后台发现了一个错 […]
马年的祝福!
新年,新事,新气象!一切都是新的,在新的一年里,也应该有新的计划! 一.技术更上一个台阶,具体如下: 1)学习 […]
linux下删除指定的文件或文件夹
在linux下有时候我们可能会有选择性的删除一些文件或文件夹.都知道,通常删除文件夹的方法是: rm -rf […]
计算股票手续费的js函数
在很多模拟股票交易系统中都会需要自己写计算手续费的函数,以期达到和实盘一致.我共享一个耀骑网络计算的函数,以供 […]
mysql创建每天定时执行存储过程的方法
首先我们来看代码如下: CREATE EVENT cal_data ON SCHEDULE EVERY 1 […]
用html5实现桌面提醒功能
qq每天都会在右下角弹出一些最新的新闻或广告.这个功能要在web中实现起来也不难,但是总是有一点不完美.偶然发 […]
一个逗号引发的血案
开发过程中发现一个让人无语的问题,经过查询却是一个小逗号引起的.代码如下 var dialog = art.d […]
jquery ie6 getscript中文乱码
项目中要用到股票数据,于是从腾讯获得数据,原来的代码如下: $.getScript(“http:/ […]
MYSQL存储过程1690 – BIGINT UNSIGNED value is out of range in
今天在修改一个mysql存储过程的时候突然报出了这个错误: 1690 – BIGINT UNSIG […]
用php curl post发送json数据给nginx-push-stream-module的方法
话不多说,直接看代码: <?php //print_r($_SERVER);exit; //$msg=j […]
(wamp)命令行下PHP错误:Fatal error: Call to undefined function socket_create()
今天再本地环境(wampserver)中测试html5+websocket+php的demo,刚一开始就给我报 […]
服务器推技术(nginx-push-stream-module)传数据乱码
折腾了好几天的服务器推技术(nginx-push-stream-module),今天终于有点成果了,有点小兴奋 […]
nginx-push-stream-module IE6 js报”没有权限”的解决方案
今天在玩nginx-push-stream-module的时候在其他浏览器正常,但一到IE6就不正常,报的错误 […]
为javascript中算定义函数设置参数默认值的方法
在PHP中设置默认值的方法很简单,如下: <?php function test($i=0){ echo […]
php技术–获取javascript src中参数的方法
有时项目的需要我们可能会想在js链接中带参数,如: <script type=”text/j […]
mysql错误Table ‘./mysql/proc’ is marked as crashed and should be repaired
今天服务器当机了,重启后就发现了如下错误: Table ‘./mysql/proc’ […]
php技术–php ajax服务器推技术的实现方法
在做实时信息输出的时候,我们很多时候会想到用ajax的setTimeOut方法,这个方法对于小的访问量来说没有 […]
php技术–用JS获取用户IP地址的方法
有一定编程基础的人都知道,要获取用户IP只能用服务器端的语言,用前端语言是无法或很难获取的,但是我们看看耀骑网 […]
PHP创建MYSQL自定义函数或存储过程的方法
正常创建MYSQL自定义函数和存储过程的方法耀骑网络就不在此多说了.有时候由于项目的需要,我们可能需要用程序来 […]
jquery中的append方法不兼容IE6(ajax异步请求时)
耀骑网络今天做项目时发现了这个不兼容IE6的bug,原来的代码如下: function test(url){ […]
oc中的interface和implementation的用法
object-c语言是一门用于开发mac os和ios的面向对象语言,但是从其他编程语言转过来的同学,可能会有 […]
c语言中结构体的三种定义方法
在c语言中定义数组,其中的元素必须是同一类型的。有时候我们需要在一个数组中有多种不同的数据类型共存,但c语言又 […]
php技术–php中用函数作为另一个函数的参数传递的方法
在php中一些变量是可以当作参数传值给函数,以进行相应的计算; 但是,不知道大家有没有想过,能不能把一个函数作 […]
C语言中用指针将函数作为另一个函数的参数的方法
在开发过程中,可能会碰到这样的需求: 一个函数计算两个变量的结果,但是算法不确定,那么我们就可能需要定义多个类 […]
c语言中的宏定义实现获取数组的长度的方法
先解释一下什么是宏定义: 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的# […]
C语言中用指针遍历数组的四种方法
在C语言中好像没有像PHP中print_r()和avr_dump()这样打印数组的函数,遍历吟出数组只能自己写 […]
c语言中定义和操作指针的方法
最近学习C语言,据说要学好C语言必须得学好指针.今天刚学到C语言的指针定义,记录一下,以备查验; C语言中指针 […]
php技术–php保留两位小数,不足位数以0填充的方法
在php在我们知道四舍五入的函数是:round(),用法如下: <?phpecho round(1.2, […]
mac(苹果)电脑同时登录多个QQ的方法
MAC用起来确实很舒服,ui设计超赞!!今天安装了一个qq,但是发现同时只能登录一个QQ,然后就网上搜索解决之 […]
php技术–输出每次循环的内容(上传进度条)
在PHP中我们都知道循环总是只能在循环完了后才能输出结果,而不能每循环一次就输出一个结果,这样对于我们实现上传 […]
mysql技术–批量修改存储过程的definer
在mysql存储过程开发中,经常会用到工具而不是用记事本来开发存储过程,这样做就是方便调式和提高开发效率! 我 […]
c语言中如何输出变量的内在地址
最近在学习C语言,虽然它是面向过程的编程语言,但是功能还是比较强大,有些功能并不是其它高级语言可以轻易做到的, […]
jquery实现省市县三级联动(无需数据库)
在日常开发中,经常会有用户注册的情况,而用户的地址也是不可或缺的一个选项.开发者们经常用的手法是把城市的相关数 […]
sql语句中用连接查询时慎用or
这是原来的语句 select a.symbol,a.expertid,a.companyname,b.emai […]
mysql错误–execute command denied to user ‘用户名’@’%’ for routine ‘函数名称’
今天把数据库迁移到新的服务器上,执行存储过程时出现了如下问题: execute command denied […]
mysql技术–mysql中truncate和truncate()的区别和用法
在mysql中我们都知道要清空一张表的数据可以用如下的语句: truncate 表名 这样做即可以清空数据也可 […]
mysql技术–mysql中的多表关联更新(update)语句的用法
在开发中mysql的update语句我们经常会用到,通常的mysql技术用法如下: update table1 […]
mysql技术–mysql只查询字段中有中文的正则方法
今天想要查一下用户名为中文的数据,首先想到的当然是正则表达式,不要激动mysql中确实有正则表达式的写法,具体 […]
php技术–php中感叹号!和双感叹号!!的用法(三元运算)
在php持术或其他语言中我们经常会看到感叹号的用法,有一定程序语言基础的朋友都知道单个感叹号的作用是取反的意思 […]
MYSQL函数错误–ERROR 1418 (HY000) at line 31: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
今天在用工具创建mysql函数时,所有的代码都写完了,保存的时候却发现了如下错误: ERROR 1418 (H […]
highcharts自定义起始日期格式
图片 在highcharts中设置如下参数: rangeSelector : {//早上面的导航 select […]
1318 – Incorrect number of arguments for PROCEDURE 过程名; expected 2, got 4
今天在写MYSQL存储过程时,写完后保存没有问题,一运行竟然出现如下错误: Procedure executi […]
php二次开发–dzx2附件下载不完全的解决办法
今天碰到这个问题很难搞,先是看代码没有问题,然后看配置,对比本地测试环境和正式环境的config_global […]
mysql错误[Error] 1690 – BIGINT UNSIGNED value is out of range in
今天要计算表中的两个字段乘积的和,即:sum(f1*f2)就报出了这样的错误,先是查存储过程发现没有错,然后测 […]
thinkphp实现多语言切换的方法
我是按照官方提供的例子来修改的(在核心包中),具体步骤如下: 1.config.php下的配置如下: R […]
简单又直接的禁用input右键的方法
今天项目中要求禁用input文本框的右键菜单,整了好久也没弄出来,网上有代码却是一长串.但是从中得到了启发,就 […]
php将一个数字每三位用逗号隔开的方法
我们在很多程序中都会涉及到钱的显示和计算,我们日常显示钱的方式是每三位用逗号隔开,以方便人们快速的读出数字的多 […]
Procedure execution failed 1321 – FUNCTION 函数名 ended without RETURN
今天在写mysql函数时,突然发现了这个错误: Procedure execution failed 1321 […]
php技术–不用第三个变量交换两个变量的值的方法
在php开发中有时我们可能会要交换两个变量的值来完成业务需求,大家常用的方法就是借助第三个变量,如下: $a= […]
mysql技术–存储过程中设置临时变量的方法
了解mysql存储过程的朋友都知道定义一个变量的方法是:DECLARE 变量名 变量类型 [default […]
AVG 2013可用注册码/序列号/激活码
最近发现一个挺好用的杀毒软件:AVG2013,操作简单,功能齐全,还有免费版,付费版也有完全可用注册码/序列号 […]
php技术–易企CMS/smarty截取文章并解析html标签
我们在用smarty或者有朋友用易企CMS做模板时,可能会用到截取字符串的函数,有时候我们的一篇文章中可能会包 […]
php中ajax跨域请求解决方法
在PHP 开发中我们有时可能会涉及到ajax跨域的问题,这是一个难点,但如果两个服务器都是你自己的就好办多了, […]
mysql技术–导入存储过程时保留原有注释
在mysql技术–仅导出/导入存储过程的方法一文章我提到过如何导入和导出mysql中的存储过程和函数,但是大家 […]
安装sqlserver2008遇到问题的解决办法
今天在安装sql server2008时遇到了如下的问题: Microsoft SQL Server 2008 […]
javascript删除数组中重复的元素
用javascript语言写一个去除数组中重复元素的函数 function array_unique(arr) […]
php技术–禁用表单的自动填充功能
我们都在某一网站输入过一次用户名后,再次去登录时只要双击用户名输入框或只输入一部分内容时就会有提示,然后选择就 […]
php二次开发–记事狗中数据库的操作
在记事狗微博二次开发–添加module(模型层)的方法一文中说到了如何开启记事狗二次开发之旅,本文是在此基础上 […]
php技术–jquery获取radio控件的值
在jquery中,我们都知道获取一个input的值的方法,如下: $(‘input的id值’).val() 但 […]
php技术–用php生成PDF最好的类MPDF
由于公司业务的需要,最近需要把html静态文件生成pdf,在网上找了很多类文件来实现,效果都不是很好.最先用的 […]
mysql技术–仅导出/导入存储过程的方法
有时候我们只需要导出mysql中的存储过程和函数,就不只是简单的用mysqldump就可以了,还需要加一些参数 […]
易企CMS二次开发–查看分类下的所有文章
易企CMS是一个不错的建企业站的PHP源码,操作简单,利于优化,但是也有一些不足的地方.有些功能就需要我们自己 […]
记事狗微博二次开发–添加module(模型层)的方法
首先需要强调的是此方法是版本3.0的基础上做的测试,3.0以上记事狗的架构做了很大的变动,如果有朋友有需要做记 […]
慎用mysql中字段的前导零
我们在设计数据库的时候有些朋友喜欢把字段设置成位数不足时填充0,即(ZEROFILL),这样做有时是为了好看, […]
浅谈ucenter二次开发
最近公司的几个网站需要将三个系统的用户信息共享.即在一个系统中注册账号,在其它两个系统中均可以使用.如果都是全 […]
MYSQL存储过程中的动态表名
在mysql的存储过程中有时我们可能会用到表名不是一定的,要根据传过来的参数作为表名来做相应的查询等操作.网上 […]