请教下,php用strpos 查找字符的时候从数据库取出来的进行查找会出错,而写个变量进行查找确能正确查找出
把echo $mystring 放在if外面输出一次看看结果。
创新互联建站技术团队10多年来致力于为客户提供成都做网站、成都网站建设、成都品牌网站建设、成都全网营销、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了1000多家网站,包括各类中小企业、企事单位、高校等机构单位。
我觉得应该是你查询出来的结果有乱码或是错误。
如楼上所说,如果是有乱码的话,在连接数据库之后使用 mysql_query("set names ".$charset); 或是在类中加入这样一个内部方法
还有,把所用到的字符串都在if外面输出一次,看看是不是和你想象的结果一致。
判断条件真使用 if($pos) 就可以了。
PHP—strpos查找字符串
strpos——查找字符串第一次出现的位置
strpos(string \$haystack, mixed \$needle, int \$offset = 0):int
返回needle在haystack中首次出现的数字位置
offset(7.1.0开始支持负数的 offset。)
如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始 。
返回值:
返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时 注意字符串位置是从0开始,而不是从1开始的 。
如果没找到 needle,将返回 false。
注意:
php 向数据库发送中文字符无法查询?
你的问题可能是数据库连接时未指定字符集:$conn-query("set names utf8");
详细如下:
将中文字符转换一下,可能你的网页编码是ansi非utf-8的:
$w=iconv("gb2312","utf-8",$w);
不过我不确定这样做你能否成功。关于字符有以下几点你看下:
数据库连接时: $conn-query("set names gbk");
数据库的字符集:建议建立数据库时就指定字符集,比如gbk或者utf-8,这样你就没必要为单独的表或者字段指定字符集
网页字符:META CONTENT="text/html; charset=gbk" HTTP-EQUIV="Content-Type" /
保持着三者使用的字符集一样,基本能解决你的问题。
当然,在使用ajax时。js传递过来的是utf-8,如果你的php文件和数据库使用的是中文字符集如gbk,gb2312,那么就需要对该值用iconv函数转换下字符集,如:$w=iconv("utf-8","gb2312",$w);
总之,需要这几块的字符集保持一致。
php 查找指定字符的位置
?php
$str="abf%a%fsdeghf%b%uikjkfdsl%c%fjdskyifio";
for($i=0;$istrlen($str);$i++)
{
if($str[$i]=='%')
{
$position[]=$i; //存储找到的位置信息
echo "位置:$i ";
}
}
//最终数据存在 $position 数组
?
PHP如何快速检索是否存在某个字符串?
5000多个不算多,直接保存到数据库中。
在保存的时候,可以保存部分,比如,只保存baidu,或baidu.com
这样数据检索的时候会更快。
网站标题:php数据库字符查找 php数据库查询语句
分享链接:http://scgulin.cn/article/hpsesc.html