phpstorm 中文输入法不跟随光标解决办法

win7系统新安装的phpstorm2017.2版本,试了很多输入法,要么是不显示候选次,要么是输入法候选词总是在屏幕右下角,没有跟随光标移动。百度很久,重要找到解决方案。

就是替换phpstorm安装目录下的 jre64文件夹。

下载 https://bintray.com/jetbrains/intellij-jdk/download_file?file_path=jbsdk8u112b736.21_windows_x64.tar.gz
解压更名 jre64 替换掉安装目录下的jre64,注意是解压的目录直接改成jre64,不是复制其中的jre文件夹改名。

替换前,原jre64目录注意备份!

重新启动phpstorm,一切正常!谢谢前辈的总结~

PS: Win7 PHPstorm 2017.2.1版本测试OK

QQ截图20180201132556.jpg

Posted in YII2.0 at February 1, 2018. by 傻猫 .    Views: 2314    No Comments

PHP清除html格式,去除html、css、js格式

 strip_tags($str) 去掉 HTML 及 PHP 的标记

语法: string strip_tags(string str); 

传回值: 字串 

函式种类: 资料处理 

内容说明 :

本函式可去掉字串中包含的任何 HTML 及 PHP 的标记字串。若是字串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会传回错误。而本函式和 fgetss() 有着相同的功能

查看更多内容...

Posted in Web开发 at November 1, 2011. by 傻猫 .    Views: 12175    1 Comment

通过PHP curl向腾讯微博发送广播全过程

由于朋友分布在不同的微博,我希望有个同步到twitter、新浪微博、腾讯微博的工具,但等这么久都没出现这样的工具,微博通似乎停工了,也不支持twitter和腾讯微博,于是想自己做个。

新浪微博和twitter都开放API,要实现同步发送很简单,腾讯微博未开放,就需要hack一下了。这次把研究过程都记录下来了,写得很长~实际上在curl实现那部分我花的时间比较多,走的弯路也多,但由于篇幅原因那部分都简省了~

查看更多内容...

Posted in Web开发 at August 19, 2010. by 傻猫 .    Views: 10302    3 Comments

php读取mssql日期出现中文字符的解决方法

最近用php和mssql开发东西发现,用php读取的mssql日期字段会将日期自动转换成中文方式。
比如:2005-12-23 读出以后页面会显示为:2005 十二月 23 ,这样给程序处理带来很多不便。查找了一些资料发现是php.ini默认了日期处理功能。
解决方法为:
第一个方法:php文档开头定义ini_set(”mssql.datetimeconvert”,”0″);
第二个方法:修改php.ini,找到;mssql.datetimeconvert = On ,去掉前面的分号,修改on为off,重启apache即可

Posted in Web开发 at August 8, 2008. by 傻猫 .    Views: 6180    1 Comment

PHP如何去掉转义

使用stripslashes去掉转义,使用addslashes添加转义字符。

string addslashes ( string str) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(\')、双引号(\")、反斜线(\\)与 NUL(NULL 字符) stripslashes作用相反在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\\(反斜线)和 NULL 字符转移。 PHP称之为魔术引号,这三项设置分别是 magic_quotes_gpc 影响到 HTTP 请求数据(GET,POST 和 COOKIE)。

不能在运行时改变。在 PHP 中默认值为 on。 magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。 magic_quotes_sybase 如果打开的话,将会使用单引号对单引号进行转义而非反斜线。此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ”。而双引号、反斜线 和 NULL 字符将不会进行转义。虽然方便的实现了对特殊符号的自动转义,但是这样会使得程序效率降低,并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下,还需要调用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()来检测状态。

Posted in Web开发 at August 8, 2008. by 傻猫 .    Views: 4236    No Comments

php 操作 mssql的一些方法

为了能让PHP连接MSSQL,系统需要安装MSSQL,PHP,且在PHP.ini中的配置中,将 ;extension=php_mssql.dll前面的;去掉就可以了.

         1.连接MSSQL
         $conn=mssql_connect("实例名或者服务器IP","用户名","密码");

         //测试连接
         if($conn)
         {
         echo "连接成功";
         }

         2.选择要连接的数据库
         mssql_select_db("dbname");

         3.执行查询
         $rs = mssql_query("select top 1 id,username from tbname",$conn);
         或者直接执行update,insert等语句,可以不用为返回结果赋值
         mssql_query("update tbname set username='niunv' where id=1");

         4.获取记录集行数
         echo mssql_num_rows($rs);

         5.获取记录集
         if($row=mssql_fetch_array($rs))
         {
         $id = $row[0];//获取ID字段值
          $username = $row[1];//获取username字段值

         $username = $row[username];//获取username字段值
         }

         6.获取新增记录的ID
         将id字段设置为IDENTITY字段,执行insert语句以后,就会产生一个 @@IDENTITY 全局变量值,查询出来就是最后一条新增记录的ID了.
         mssql_query("insert into tbname(username) values ('nv')",$conn);
         $rs = mssql_query("select @@IDENTITY as id",$conn);
         if($row=mssql_fetch_array($rs))
         {
         echo $row[0];
         }

         7.释放记录集
         mssql_free_result($rs);

         8.关闭连接
         mssql_close($conn);

Posted in Web开发 at August 6, 2008. by 傻猫 .    Views: 4728    No Comments

apche+php网站防盗链

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www.samool.com/.*$ [NC]   
RewriteCond %{HTTP_REFERER} !^http://www.samool.com$ [NC]   
RewriteCond %{HTTP_REFERER} !^http://samool.com/.*$ [NC]   
RewriteCond %{HTTP_REFERER} !^http://samool.com$ [NC] 
RewriteRule .*\.(gif|jpg|mp3|rm|wma|exe|rar|zip)$ http://www.samool.com/403.html[R,NC]

请将以上内容保存为.htaccess文件,放在网站根目录,修改红色网址为你的网址,绿色为错误页面。

Posted in 杂七杂八 at May 22, 2008. by 傻猫 .    Views: 3417    No Comments

ThinkPHP第一天:数据库查询功能很强大

ThinkPHP提供强大的数据查询功能,很多查询操作函数在系统中已经内置有了,不需要手动连接数据库,只需要作一下简单的数据连接配置,直接数组参数方式配置和DSN参数进行连接数据库,所有操作都是傻瓜式的,很方便,呵呵,以下内容来源于《ThinkPHP开发指南》。

1、普通查询 

$condition = new HashMap(); 

//  查询 name 为 thinkphp  的记录
$condition‐>put('name','thinkphp'); 

//  使用数组作为查询条件 
$condition = Array(); 
$condition['name'] = 'thinkphp'; 

使用 Map 方式查询和使用数组查询的效果是相同的,并且是可以互换的。 

2、条件查询 

在查询条件里面,如果仅仅使用 

$map‐>put(‘name’,’thinkphp’); 

查询条件应该是  name = ‘thinkphp’ 

如果需要进行其它方式的条件判断,可以使用 

$map‐>put(‘name’,array(‘like’,’thinkphp%’)); 

这样,查询条件就变成  name like ‘thinkphp%’ 

$map‐>put(‘id’,array(‘gt’,100)); 

查询条件  id > 100 

$map‐>put(‘id’,array(‘in’,’1,3,8’)); 

//  或者使用数组范围

$map‐>put(‘id’,array(‘in’,array(1,3,8))); 

上面表示的查询条件都是  id in (1,3,8) 

支持的查询表达式有EQ |NEQ |GT|EGT|LT |ELT |LIKE|BETWEEN|IN|NOT IN 

3、区间查询 

ThinkPHP 支持对某个字段的区间查询,例如: 

$map‐>put('id',array(1,10)); // id >=1 and id<=10 

$map‐>put('id',array('10','3','or')); //id >= 10 or id <=3 

$map‐>put('id',array(array('neq',6),array('gt',3),'and')); // id != 6 and id > 3 

4、组合查询 

如果进行多字段查询,那么字段之间的逻辑关系是 逻辑与  AND,但是用下面的规则可以更改默认的 

逻辑判断,例如下面的查询条件: 

$map‐>put('id',array('neq',1)); 

$map‐>put('name','ok'); 

// 现在的条件是 id !=1 and name like '%ok%' 

$map‐>put('_logic','or'); 

// 现在的条件变为 id !=1 or name like '%ok%' 

5、多字段查询 

ThinkPHP还支持直接对进行多字段查询的方法, 可以简化查询表达式和完成最复杂的查询方法, 例如: 

$map‐>put('id,name,title',array(array('neq',1),array('like','aaa'),array('like','bbb'),’or’)); 

查询条件是  ( id != 1) OR ( name like ‘aaa’) OR ( title like ‘%bbb%’) 

如果结合上面的几种方式,我们可以写出下面更加复杂的查询条件 

$map‐>put(‘id’,array(‘NOT IN’,’1,6,9’)); 

$map‐>put(‘name,email’,array(array(‘like’,’thinkphp’),array(‘like’,’liu21st’),’or’)); 

以上查询条件变成:( id NOT IN(1,6,9) ) AND ( ( name like ‘aaa’) OR ( title like ‘%bbb%’) ) 

6、查询缓存 

ThinkPHP 内建查询缓存支持,可以包括对 SQL 查询缓存、数据对象缓存的缓存支持。对于同一个数据对象的多次查询并不会导致多次数据库的查询开销,系统内置会进行缓存判断。 

7、统计查询 

在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、用户的平均成绩等等,ThinkPHP 为这些统计操作提供了一系列的内置方法。 

  //  获取用户数 

  $userCount = $User‐>count(); 

  //  获取用户的最大积分 

  $maxScore = $User‐>max(‘score’); 

  //  获取积分大于 0  的用户的最小积分 

  $minScore = $User‐>min(‘score’,’score>0’); 

  //  获取用户的平均积分 

  $avgScore = $User‐>avg(‘score’); 

  //  统计用户的总成绩 

  $sumScore = $User‐>sum(‘score’); 

8、定位查询 

ThinkPHP 支持定位查询,可以使用getN 方法直接返回查询结果中的某个位置的记录。例如: 

  //  返回符合条件的第 2 条记录
  $User‐>getN(2,’score>80’,’score desc’); 

  还可以获取最后第二条记录 
  $User‐>getN(‐2,’score>80’,’score desc’); 

  如果要查询第一条记录,还可以使用 
  $User‐>first(’score>80’,’score desc’);

  //  获取最后一条记录 
  $User‐>last(’score>80’,’score desc’); 

  //  获取积分最高的前 5 条记录 
  $User‐>top(5,’’,’score desc’); 

9、动态查询 

借助  PHP5 语言的特性,ThinkPHP 实现了动态查询。该查询方式针对数据表的字段进行查询。例如,User 对象拥有 id,name,email,address  等属性,那么我们就可以使用下面的查询方法来直接根据某个属性来查询符号条件的记录。 

  $user = $User‐>getByName(‘liu21st’); 
  上面的查询会转化为$User‐>getBy(‘name’,’liu21st’)的查询语言来执行 

  $user = $User‐>getByEmail(‘liu21st@gmail.com’);
  $user = $User‐>getByAddress(‘中国深圳’); 
  暂时不支持多数据字段的动态查询方法,请使用 find 方法和 findAll 方法进行查询。 

  ThinkPHP 还提供了另外一种动态查询方式,就是获取符合条件的前 N 条记录 

  例如,我们需要获取当前用户中积分大于 0,积分最高的前 5 位用户
  $User‐>top5(‘score>0’,’*’,’score desc’); 

  而在另外一个频道,我们需要获取点击最多的前 10 位主播 
  $Master‐>top10(‘’,’*’,’visit desc’); 

10、SQL 查询 

ThinkPHP 支持原生的 SQL 查询,在某些特殊的情况下可以满足应用的需要。 SQL 查询的返回值因为是直接返回的 Db 类的查询结果,没有做任何的处理,所以永远是返回的数据集对象或者惰性数据查询对象。而且可以支持查询缓存、延迟加载和事务锁 (悲观锁)。 

SQL 查询使用 query 方法 
$list = $User‐>query(“select id,name from think_user”);

如果没有使用延迟加载,返回结果是   ArrayObject  对象,如果启用了延迟加载,那么返回的是ResultIterator 对象。 

11、事务支持 

ThinkPHP 提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法: 

//  启动事务 
$User‐>startTrans() 

//  提交事务 
$User‐>commit() 

//  事务回滚 
$User‐>rollback(); 

在有些对多个数据的批量操作中,已经内建了事务支持。 

Posted in 杂七杂八 at March 13, 2008. by 傻猫 .    Views: 12671    No Comments