网站开发遇到的问题

1.字符串的过滤

  在做数据处理的时候需要把给定的字符过滤出来,使用到了strpos()函数,该函数返回字符串在另一个字符串中第一次出现的位置,若无记录返回false。

  但是有个问题,就是如果要查找的字符串是目标字符串的开头,如:

<?php
echo strpos("Hello world!","He"); //注意!该函数区分大小写
?>

 

  以上代码返回的是数字“0”,但是若使用IF做判断却无法达到目的,如下:

1 <?php
2 if(strpos("Hello world!","He")==false){
3 echo "找不到!"; //输出
4 }
5 if(strpos("Hello world!","He")==0){
6 echo "找到了!"; //还输出
7 }
8 ?>

 

  解决办法参考第二条!

2.全等号的问题

  全等号是神马东西?相信许多学习PHP的童鞋会比较陌生吧。全等号在PHP于艳丽表达为“===”,即三个等号连接起来,他也表示等于号,但是和我们常用的“==”有什么区别呢?

  其实很简单,全等号不仅比较的是数值,还会比较数据的类型。具体代码就不列出了。请大家记住以下表达式的值就行了:

0== flase   -> true
0=== flase   -> false
2== true   -> true
2=== true   ->  false

 

第一条的解决方法就是:

1 <?php
2 if(strpos("Hello world!","He")===false){
3 echo "找不到!"; //不输出
4 }
5 if(strpos("Hello world!","He")===0){
6 echo "找到了!"; //输出
7 }
8 ?>

 

3.sqlite的功与过

  我所在的公司使用的是sqlite数据库,熟悉数据库的人都知道,sqlite数据库属于短小精悍型的,有点我就不一一列举了,但在使用它的时候遇到了不少问题。

  sqlite版本问题:group_concat()函数是sql中比较实用的函数了,但是我在Navicat for SQLite中运行起来总是提示逻辑或数据库错误。。。最后发现低版本的sqlite不支持这函数,解决办法要么升级数据库,要么使用PHP语句实现行转列的功能。最后我使用的方法为后者,因为如果升级数据库的话,使用以前的数据库操作类就要重新写一遍。。。很是郁闷啊。

  想使用sqlite的全文检索的童鞋也要注意,sqlite的虚拟表必须使用sqlitev3版本才行,所以下次在使用sqlite前,一定要选好版本!!!

  

posted @ 2012-07-17 14:11  沉默的鱼0928  阅读(169)  评论(0编辑  收藏  举报