2018年4月

说下我的php是phpstudy,版本php用的5.6nts.

  • 找到phpini文件打开后最后一行去掉分号.phpstudy在C盘下,改成如下,注意你自己安装目录
zend_extension="C:\server\php\PHPTutorial\php\php-5.6.27-nts\ext\php_xdebug.dll"
xdebug.remote_enable = on
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir ="C:\server\php\tmp"
xdebug.show_local_vars=0
xdebug.remote_handler = dbgp
;设置xdebug的端口为9001
xdebug.remote_port = 9001
;设置idekey
xdebug.idekey="PHPSTORM"
  • 在文件-设置-语言和框架-PHP找到如图,添加php.exe
    图片

请输入图片描述请输入图片描述

请输入图片描述

说到php开发神器phpstorm,下载汉化版https://pan.baidu.com/s/1nHghHl0_D4QFcKZcIA8pTg,可以说非常好用,如果内存4G机器用起来非常卡,怎么来优化呢?

  • 安装过程,很简单,最后把汉化文件复制到安装文件夹的lib目录,打开就是中文版,官方是没有中文版的,安装完成后,网站搜索激活网站就行了.
  • 需要注意设置工作目录尽量文件少,工作目录,否则打开软件索引时候占用全部cpu,卡的不行
  • 还有设置里面关闭不需要的插件,减少内存的大小.
  • 打开滨 目录 PhpStorm64.exe,注意需要安装64位JDK,不要用生成的快捷方式.

经过设置只占用内存不到400MB,不改的话有1G,所以优化还是非常重要的,后面介绍设置phpstorm xdebug断点调试设置.

遇到 占用cpu到100%,很烦,
关闭它有两种方法,一种是关闭启动进程扫描。另一种是关闭windows defende。

  • 鼠标移动到电脑桌面左下角,右键点一下开始,点里面的“运行”,或着win键+R键打开“运行”。
  • 运行里输入:gpedit.msc
  • 依次打开:管理模板----windows组件----windows Defender。
  • 找到windows Defender下的“实时保护”。然后鼠标双击右侧的“不论何时启用实时保护,都会启用进程扫描.
  • 在弹出的设置页面选已禁用。保存就行了。
  • 如果还不能解决我们可以用第二种方法就是禁用windows Defender。
    我们用上面的方法依次打开:管理模板----windows组件--找到-windows Defender,鼠标点一下windows Defender。在右侧找到”关闭windows Defender"并用鼠标双击它
  • 在打开的设置页面,选:已启用。确定之后就会禁用windows Defender。

表单验证jquery插件Validform是比较好用的,只需要加载css和jquery插件就能很方便使用.

<form class="demoform">
<input type="text" value="" name="name" datatype="s5-16" errormsg="昵称至少5个字符,最多16个字符!" />
</form>

初始化$(".demoform").Validform();一句就可以了

内置基本的datatype类型有: | 6-16 | n | n6-16 | s | s6-18 | p | m | e | url
*:检测是否有输入,可以输入任何字符,不留空即可通过验证;
*6-16:检测是否为6到16位任意字符;
n:数字类型;
n6-16:6到16位数字;
s:字符串类型;
s6-18:6到18位字符串;
p:验证是否为邮政编码;
m:手机号码格式;
e:email格式;
url:验证字符串是否为网址。
自定义datatype的名称,可以由字母、数字、下划线、中划线和*号组成。
形如"6-16"的datatype,Validform会自动扩展,可以指定任意的数值范围。如内置基本类型有"6-16",那么你绑定datatype="*4-12"就表示4到12位任意字符。如果你自定义了一个datatype="zh2-4",表示2到4位中文字符,那么datatype="zh2-6"就表示2到6位中文字符。
5.2版本之后,datatype支持规则累加或单选。用","分隔表示规则累加;用"|"分隔表示规则多选一,即只要符合其中一个规则就可以通过验证,绑定的规则会依次验证,只要验证通过,后面的规则就会忽略不再比较。如绑定datatype="m|e",表示既可以填写手机号码,也能填写邮箱地址,如果知道填入的是手机号码,那么就不会再检测他是不是邮箱地址;datatype="zh,s2-4",表示要符合自定义类型"zh",也要符合规则"s2-4"。
注:
5.2.1版本之后,datatype支持:
直接绑定正则:如可用这样写datatype="/w{3,6}/i",要求是3到6位的字母,不区分大小写;
支持简单的逻辑运算:如datatype="m | e, *4-18 | /w{3,6}/i | /^validform.rjboy.cn$/",
这个表达式的意思是:可以是手机号码;或者是邮箱地址,但字符长度必须在4到18位;或者是3到6位的字母,不区分大小写;或者输入validform.rjboy.cn,区分大小写。这里","分隔相当于逻辑运算里的"&&"; "|"分隔相当于逻辑运算里的"||";不支持括号运算。
nullmsg
当表单元素值为空时的提示信息,不绑定,默认提示"请填入信息!"。
如:nullmsg="请填写用户名!"
5.3版开始,对于没有绑定nullmsg的对象,会自动查找class为Validform_label下的文字作为提示文字:
如这样的html结构:
<span class="Validform_label">*用户名:</span><input type="text" val="" datatype="s" />
当这个文本框里没有输入时的出错信息就会是:"请输入用户名!"
这里Validform_label跟input之间的位置关系,不一定是要同级关系,同级里没有找到的话,它还会在同级的子级、父级的同级、父级的同级的子级里查找。
sucmsg 5.3+
当表单元素通过验证时的提示信息,不绑定,默认提示"通过信息验证!"。
如:sucmsg="用户名还未被使用,可以注册!"
5.3版开始,也可以在实时验证返回的json数据里返回成功的提示文字,请查看附加属性ajaxurl的介绍。
errormsg
输入内容不能通过验证时的提示信息,默认提示"请输入正确信息!"。
如:errormsg="用户名必须是2到4位中文字符!"
5.3版开始,Validform可以根据你绑定的datatype智能的输出相应出错信息,具体介绍请查看tipmsg
ignore
绑定了ignore="ignore"的表单元素,在有输入时,会验证所填数据是否符合datatype所指定数据类型,
没有填写内容时则会忽略对它的验证;
recheck
表单里面经常需要检查两次密码输入是否一致,recheck就是用来指定需要比较的另外一个表单元素。
如:recheck="password1",那么它就会拿当前元素的值跟该表单下,name为"password1"的元素比较。
tip
表单里经常有些文本框需要默认就显示一个灰色的提示文字,当获得焦点时提示文字消失,失去焦点时提示文字显示。tip属性就是用来实现这个效果。它通常和altercss搭配使用。
如<input type="text" value="默认提示文字" class="gray intxt" tip="默认提示文字" altercss="gray" />
altercss
它需要和tip属性配合使用,altercss指定的样式名,会在文本框获得焦点时被删除,没有输入内容而失去焦点时重新加上。
ajaxurl
指定ajax实时验证的后台文件的地址。
后台页面如valid.php文件中可以用 $_POST["param"] 接收到值,Ajax中会POST过来变量param和name。param是文本框的值,name是文本框的name属性。
5.2版本开始,可以在ajaxurl指定的url后绑定参数,如:ajaxurl="valid.php?myparam1=value1&myparam2=value2"; 5.3.1开始,地址后面附带的参数内部不再做另外解析,仍附带在地址后面,所以需要用GET方式去获取地址后面带的参数。
5.3之前的版本中,该文件输出的字符会作为错误信息显示在页面上,如果验证通过需输出小写字母"y"。
在5.3版中,实时验证的返回数据做了调整,须是含有status值的json数据!跟callback里的ajax返回数据格式统一,建议不再返回字符串"y"或"n"。目前这两种格式的数据都兼容。
注:
如果ajax校验通过,会在该元素上绑定validform_valid值为true。可以通过设置该值来控制验证能不能通过,如验证码的验证,第一次验证通过后,不小心右点击了下验证码图片,验证码换了,但是仍然指示这个对象已经通过了验证,这时可以手动调整该值:$("#name")[0].validform_valid="false"。
怎样设置ajax的参数,具体可以查看Validform对象的config方法。

下载地址 http://validform.rjboy.cn

QQ音乐非常不错,2018年qq音乐修改了网站搜索,以前的接口已经不能用了,笔者在此做了一个新的接口,可以搜索到音乐的真正播放地址,描述,以及相册封面等信息,可以用来做音乐相关应用.接口代码如下,只需要歌曲关键字即可搜索10条数据.

function somusic($keyword="东风破") {//搜索QQ音乐
        $time = time()*1000;
$url = "http://i.y.qq.com/s.music/fcgi-bin/search_for_qq_cp?g_tk=5381&uin=0&format=jsonp&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&w=".urlencode($keyword)."&zhidaqu=1&catZhida=1&t=0&flag=1&ie=utf-8&sem=1&aggr=0&perpage=20&n=10&p=1&remoteplace=txt.mqq.all&_=".$time."&jsonpCallback=jsonp4";
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$data  =  curl_exec($ch);
curl_close($ch);

$rs=substr($data,7,strlen($data)-8);
$list = json_decode($rs,1);

if(count($list['data']['song']['list'])>0){
$arr = array();
foreach($list['data']['song']['list']  as  $v){
$arr[] = array(
'id'=>$v["songid"],
"songname"=>$v["songname"],
"desc"=>$v["singer"][0]['name']."---".$v["songname"],
'musicurl'=>"http://ws.stream.qqmusic.qq.com/C100".$v['songmid'].".m4a?fromtag=38",
'pic'=>"http://y.gtimg.cn/music/photo_new/T002R150x150M000".$v['albummid'].".jpg?max_age=2592000"
);

}
}else    {
$arr = array();
}


if(count($arr)>0){

$str = $arr;

}else{
$str = "未找到相关音乐";

}
return $str;
    }

请不要做违法应用,支持正版音乐

win10 系统,突然出现github上提交不了了,使用的TortoiseGit2.1版本,出现错误提示"Couldn't agree a key algorithm",网上搜索说是putty版本太低,所以就尝试更新到0.7,依然不行.但是国内的码云是可以的,并不报错.

最后重装也不行,包括重置密钥,最后解决办法,是更新TortoiseGit到2.6版本,问题随即解决,竟然是版本太低了,看来是github网站升级了相关东西.

git还是喜欢图形工具TortoiseGit,虽说命令更高大上,但是图形工具也有自己优势.