Zend Studio 基本设置

使用IDE编码快捷方便,但是需要一些tab和编码风格的设置,下面是新手第一次配置IDE的简单方法。
一 连接远程文件
我们的代码文件全部放在linux开发机上,首先需要连接到开发机上的代码
1点击File->PHP Project from Remote Server

2,点击Manage,输入host及用户名密码,同时点击Test Connection测试连接是否正常。

3,接下来开始拉代码,会有树级目录,选择需要的目录即可。
注意Zend并不会实时更新Linux机器上的代码,如果在远端使用VIM直接修改文件后,记得在文件上点击右键->RemoteServers->Download from server更新代码。

二 设置Tab键默认为4个空格
为了兼容代码的格式,一般不建议使用Tab键,所以设置Tab为4个空格后,使用Tab全部变为4个空格,检测方法是用了Tab键再次按Back space键,如果一次只回一个空格距离,则设置成功。

1,点击Window->Preferences->General->Editors->TextEditors
在Displayed tab width 输入4

2,点击PHP->CodeStyle->Formatter->Edit选择Spaces 填入红色框中的数字4,4即可

3 最后在General->Workspace中选择UTF-8和Unix编码风格即可。

好啦,设置以上步骤后,就可以愉快的便代码啦!
*以上图片截取Zend Studio 10.6

[GIT]git创建及其使用心得

本文章涉及到了git的创建和基本操作,适合初学者使用

查看本地分支 git branch
切换分支 git checkout ‘name’
删除本地分支 git branch -d ‘name’
创建新分支 并切换到改分支 git checkout -b ‘name’
查看线上分支 git branch -r
克隆并创建分支 git checkout -b ‘newname’ master
本地分支提交到远程 git push origin ‘name’
撤销本地的修改 git checkout — 文件名
撤销本次提交的代码 git reset –hard HEAD~1

查看所有版本 git reflog
回到某个版本 git reset –hard XXXXX

分支提交 git push origin resblock 最后为分支名
分支下载 git pull origin resblock ‘resblock 为分支名’
删除远程分支 git push origin : 自己分支名 删除远程分支
合分支 git merge deyou(分支名) –no-ff git push origin master
rebase
在自己分支上进行 git rebase master 处理冲突后进行 git rebase –continue 放弃处理 git rebase -abort
git checkout –our

//暂存修改
git stash
git stash pop

//修改配置,快捷键
vim ~/.gitconfig
[alias]
last = log >—lg = log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit
lg = log –color –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ –abbrev-commit
ci = commit
br = branch
co = checkout
df = diff
st = status

创建自己的git方法
1, 下载git 找到相应目录,git init
2, 根目录下去寻找.ssh目录。寻找SSH KEY

$ ssh-keygen -t rsa -C &quot;youremail@example.com&quot;

3, 登录github 打开account setting Add SSH KEY
4, Create
a new repo
5, 按照提示
//git init
//git add README.md
//git commit -m “first commit”
git remote add origin
git@github.com:wangchunwei/shulan.git
git push -u origin master

[算法]找数组中和为定值的数组对

一道简单的算法题,要求在数组中,找到所有和为定值的数组对。比如在array(11,11,1,2,-1,3,4,6,7,8,9,5,-1)中,找到所有和为10的数组对。
考虑到时间复杂度,牺牲空间,每个值作为一个key,他的互补对为value-key,每遍历一个数组值,先判断有没有互补对,有则打印此key,和互补key,互补key-1,否则添加一个key.php代码如下:

&lt;?php  
function findSum($arr, $sum) {  
    $total  = 0;  
    $sumArr = array();  
    foreach($arr as $key) {  
        //如果有此key,并且有和为sum的key,总数加一,失去一个互补key  
        if(isset($sumArr[$sum-$key]) &amp;&amp; ($sumArr[$sum-$key] &gt; 0)) {  
            $total ++ ;  
            //打印出来  
            $diff = $sum-$key;  
            echo &quot;($key, $diff)&lt;/br&gt;&quot;;  
            //互补key -1 
            $sumArr[$sum-$key] --;  
        }else{  
            //添加一个key  
            isset($sumArr[$key]) ?  $sumArr[$key]++ : ($sumArr[$key] = 1);  
        }  
    }  
    echo &quot;total:{$total}&quot;;  
}  
//测试用例  
$arr = array(11,11,1,2,-1,3,4,6,7,8,9,5,-1);  
findSum($arr, 10);  

测试结果为:
(-1, 11)
(6, 4)
(7, 3)
(8, 2)
(9, 1)
(-1, 11)
total:6

[应用]手机端连接本地服务器进行调试

目前开发涉及到手机开发,由于手机设置host比较麻烦,最好的就是可以让手机通过代理来访问开发机。下面介绍一种通过node服务来搭建代理的方式:

 

一、安装 nproxy

1.安装nodejs,去www.nodejs.org下载安装即可

2.安装nproxy,打开命令行,执行

npm install -g nproxy

安静的等待安装即可。

3.在命令行中运行 nproxy 即可启动代理服务。

二、设置手机代理

1.手机连接同一局域网下的WIFI

2.选中wifi,下面有个代理设置

代理服务器就是你机器的ip

端口默认8989

 

设置完毕后,就可以通过你本机访问测试环境了。

 

三、nproxy更多功能

   上面只是一个简单的代理,其实nproxy实现的功能比较多,前端多用来设置代理规则将服务代码指向本地代码。比fiddler方便多了

更多功能 https://www.npmjs.com/package/nproxy

搭配chrome插件 switchysharp使用更爽。

四、更多代理

还可以通过笔记本搭建热点的方式。(笔记本要有网线,通过笔记本wifi搭建热点),比如大家可以在无线中找到 dongyajie’s mac pro

win可以下载fiddler来设置代理,设置方式去网上搜搜。也可以设置规则,正则不太好写。

[PHP]运用PHPMailer发送带压缩附件的邮件

某些情况经常要定期收集信息,当数据量大时,附件就超过了邮件的限制,此时将附件压缩,在通过PHPMailer发送是一个简单可靠的方式。

1,首先下载PHPMailer的函数库  http://sourceforge.net/projects/phpmailer/,放在可以加载的地方

2,配置邮件参数

3,用Linux自带的命令zip -r $filename.zip $filename 压缩附件(或者安装的其他压缩方式,tar等)

4,加载附件发送邮件

    protected function _sendMail($subject, $content, $address = '')
    {           
        $mailer = new PHPmailer();
        
        $mailer-&gt;Host = 'smtp.163.com';
        $mailer-&gt;IsSMTP();
        $mailer-&gt;SMTPAuth = true;
        
        //链家邮件发件人设置
        $mailer-&gt;Username = &quot;willwcw&quot;;
        $mailer-&gt;Password = 'XXXXXXX';  //密码
        
        $mailer-&gt;From = &quot;willwcw@163.com&quot;;
        $mailer-&gt;FromName = &quot;通知邮件&quot;;
        $mailer-&gt;CharSet = &quot;UTF-8&quot;;

        //收件人设置
        $mailer-&gt;Encoding = &quot;base64&quot;;
        $mailer-&gt;AddAddress('xxxx@163.com'); 
        //$mailer-&gt;AddCC('webrd@l63.com');  //抄送

        $filename = $subject.&quot;.html&quot;;
        $file = fopen($filename, &quot;w+&quot;);
        fwrite($file, $content);
        fclose($file);
        //文件太大,采取压缩后附件形式
        //shell_exec(&quot;tar zcvf $filename.tar $filename &quot;);
        shell_exec(&quot;zip -r $filename.zip $filename &quot;);
        
        $mailer-&gt;IsHTML(true);
        $mailer-&gt;Subject = $subject;
        $mailer-&gt;Body =  $title = &quot;&lt;h1 align='center'&gt;&quot;.$this-&gt;yesterday.$filename.&quot;邮件提醒&lt;/h1&gt;&quot;;    
        $tarName = $filename.'.zip';
        $mailer-&gt;AddAttachment('./'.$tarName, &quot;$tarName&quot;);//附件的路径和附件名称
       
        if($mailer-&gt;Send()){
            Yii::info(&quot;send email $subject successful!&quot;);
        }else{
            Yii::warning(&quot;sendmail wrong&quot;, $mailer-&gt;ErrorInfo);
        }
        shell_exec(&quot;rm $tarName&quot;);
        shell_exec(&quot;rm $filename&quot;);
    }

[git]tig的安装及使用

tig 是git 的反转,类似文本功能查看git 的一些操作,非常直观和方便。
一 安装
安装tig前需要安装ncurses,这里推荐ncurses-5.9
1,下载ncurses.tar.gz 解压tar zxvf ncurses.tar.gz
2, 进入到目录./configure
3, make & make install
之后安装tig-2.1.1.tar.gz,同样的步骤
1,下载tig-2.1.1.tar.gz 解压tar zxvf tig-2.1.1.tar.gz
2, 进入到目录./configure
3, make & make install

二 使用
1,在git 目录按tig 进入commit 模式
2,按enter可以进入diff Q退出 pgup pgdn可以翻页
3,q退出diff
4,按t可以看tree view
5,tig blame 可以代替git blame
…..更多待作者我去发现啦