用php骂人,php字符串比较用==的一个教训

php字符串比较用==的一个教训

一直认为php中字字符串比较直接用==来判断还是很方便的,但今天遇到的一个问题,彻底让我明白了使用strcmp的必要性.这个问题很多老手都可能会忽略的.

今天在登录自己做的程序时,在输入验证码后,想直接按小键盘上回车登录(程序检查了回车事件),结果按回车按成了键盘上回车键旁边小数的那个键,验证码栏就多输入了一个点。由于点很小,我就没注意,再按了一次回车,居然验证码验证成功了。这不见鬼了吗?于是退出再试了一次,多输入一个点,居然的确可以验证通过。果然有问题!但多输2个点,则验证通不过了。

大汗之下,发现是验证用了==。难道字符串==会忽略最后的那个点?

于是做了个实验。

$aa = '3306.';//多个点

$b = '3306';

if($aa == $b) echo "相等哦";

果然得到的结果是相等。

用恒等 === 则 不会得到相等的结论.

用strcmp()也不会得到相等的结论.

于是立刻修正编码规范,禁止使用 == 作为字符串相等比较.改用strcmp();

至于为何 == 会忽略那个点.尚不得知.

相关文档:

configure: error: Unable to find libgd.(a|so)

如果使用的是ubuntu或debian就很简单了,直接sudo apt-get install apache2

libapache2-mod-php5 php5 php5-gd 就基本上搞定,但是用源代码安装还是很麻烦~

wget http://www.boutell.com/gd/http/gd-2.0.11.tar.gz

tar zxvf gd-2.0.11.tar.gz

cd gd-2.0.11

sudo . ......

代码如下,

// 建立一个指向新COM组件的索引

$word = new COM("word.application") or die("Can't start Word!");

// 显示目前正在使用的Word的版本号

echo "Loading Word, v. {$word->Version}

";

exit;

?>

有时候你会得到一个错误,

PHP Fatal error: Uncaught except ......

最近想安装PEAR(PHP Extension and Application Repository),但是在执行批处理文件go-pear.bat的时候出现了错误:

phar "C:\php\PEAR\go-pear.phar" does not have a signature

PHP Warning: require_once(phar://go-pear.phar/index.php): failed to open stream: phar error: ......

在项目开发中发现对php的文档缺少管理,别人写了一个,功能不多

/**

* 类名: doc

*

描述: 文档生成类

* 其他: 可以对目录进行过滤,设置好源目录后,请用绝对路径指定生成目录,模式可调,模式

*

1为常规类型,即以 斜线**开头,以*斜线 结束

* 2为扩展类型,凡是 斜线*开头以*斜线 结束的部分都将成为文 ......

头部调用

require('conn.php');

$sql1="select id from news";

$query1=mysql_query($sql1,$conn);

$sun_num=mysql_num_rows($query1);

$gs=20;

$page_num=ceil($sun_num/$gs);

include("../subpage.php");

//传过来的页数参数

$PB_page=$_GET['PB_page'];

if ($PB_page==1 or empty($PB_page)){

$ ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值