新聞中心
請教下,php用strpos 查找字符的時候從數(shù)據(jù)庫取出來的進行查找會出錯,而寫個變量進行查找確能正確查找出
把echo $mystring 放在if外面輸出一次看看結果。
創(chuàng)新互聯(lián)建站技術團隊10多年來致力于為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設、成都品牌網(wǎng)站建設、成都全網(wǎng)營銷、搜索引擎SEO優(yōu)化等服務。經過多年發(fā)展,公司擁有經驗豐富的技術團隊,先后服務、推廣了1000多家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構單位。
我覺得應該是你查詢出來的結果有亂碼或是錯誤。
如樓上所說,如果是有亂碼的話,在連接數(shù)據(jù)庫之后使用 mysql_query("set names ".$charset); 或是在類中加入這樣一個內部方法
還有,把所用到的字符串都在if外面輸出一次,看看是不是和你想象的結果一致。
判斷條件真使用 if($pos) 就可以了。
PHP—strpos查找字符串
strpos——查找字符串第一次出現(xiàn)的位置
strpos(string \$haystack, mixed \$needle, int \$offset = 0):int
返回needle在haystack中首次出現(xiàn)的數(shù)字位置
offset(7.1.0開始支持負數(shù)的 offset。)
??如果提供了此參數(shù),搜索會從字符串該字符數(shù)的起始位置開始統(tǒng)計。 如果是負數(shù),搜索會從字符串結尾指定字符數(shù)開始 。
返回值:
??返回 needle 存在于 haystack 字符串起始的位置(獨立于 offset)。同時 注意字符串位置是從0開始,而不是從1開始的 。
??如果沒找到 needle,將返回 false。
注意:
php 向數(shù)據(jù)庫發(fā)送中文字符無法查詢?
你的問題可能是數(shù)據(jù)庫連接時未指定字符集:$conn-query("set names utf8");
詳細如下:
將中文字符轉換一下,可能你的網(wǎng)頁編碼是ansi非utf-8的:
$w=iconv("gb2312","utf-8",$w);
不過我不確定這樣做你能否成功。關于字符有以下幾點你看下:
數(shù)據(jù)庫連接時: $conn-query("set names gbk");
數(shù)據(jù)庫的字符集:建議建立數(shù)據(jù)庫時就指定字符集,比如gbk或者utf-8,這樣你就沒必要為單獨的表或者字段指定字符集
網(wǎng)頁字符:META CONTENT="text/html; charset=gbk" HTTP-EQUIV="Content-Type" /
保持著三者使用的字符集一樣,基本能解決你的問題。
當然,在使用ajax時。js傳遞過來的是utf-8,如果你的php文件和數(shù)據(jù)庫使用的是中文字符集如gbk,gb2312,那么就需要對該值用iconv函數(shù)轉換下字符集,如:$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 ";
}
}
//最終數(shù)據(jù)存在 $position 數(shù)組
?
PHP如何快速檢索是否存在某個字符串?
5000多個不算多,直接保存到數(shù)據(jù)庫中。
在保存的時候,可以保存部分,比如,只保存baidu,或baidu.com
這樣數(shù)據(jù)檢索的時候會更快。
網(wǎng)頁名稱:php數(shù)據(jù)庫字符查找 php數(shù)據(jù)庫查詢語句
鏈接地址:http://www.ef60e0e.cn/article/hpsesc.html