本文目錄一覽:
- 1、PHP 查找中文字符串
- 2、php中strstr stristr strcchr 和strpos的區別
- 3、php 中的strstr()與strchr()的區別
- 4、PHP中如何判斷一個字符串中是否有某個字符?
- 5、php strlen utf8一個中文算3個字節嗎?
PHP 查找中文字符串
在PHP中查找中文字符,有兩種方案:
將PHP保存為與欲查找中文一樣的編碼,然後使用strpos查找。
將PHP保存為UTF-8無BOM編碼,然後轉換字符串編碼為UTF-8,再用strpos查找。
第一種方法:
strpos($curl_res, ‘中文’);
第二種方法:
$str = mb_convert_encoding($str, ‘utf-8’, ‘gbk’);
mb_strpos($str, ‘中文’);
主意:函數中的中文字符串參數的編碼,必須要和PHP文件保存格式的編碼一致。
php中strstr stristr strcchr 和strpos的區別
strstr — 查找字符串的首次出現,返回值是開始出現到字符串結尾的字符串.
stristr 是strstr的忽略大小寫版本,作用同上
strrchr — 查找指定字符在字符串中的最後一次出現
strpos — 查找字符串首次出現的位置
沒有strcchr這個函數.
php 中的strstr()與strchr()的區別
strchr()和strstr()是同義函數。功能效用完全一樣。
echo strstr( ‘abc@123.com’, ‘@’); //默認返回查找值@之後的尾部,@123.com
echo strstr(‘abc@123.com’, ‘@’, TRUE); //參數設定true, 返回查找值@之前的首部,abc
PHP中如何判斷一個字符串中是否有某個字符?
PHP中如何判斷一個字符串中是否有某個字符,如下:
PHP語言是一個功能強大的嵌入式HTML腳本語言,它的易用性讓許多程序員選擇使用。PHP判斷字符串的包含,可以使用PHP的內置函數strstr,strpos,stristr直接進行判斷.也可以通過explode函數的作用寫一個判斷函數。
1. strstr: 返回一個從被判斷字符開始到結束的字符串,如果沒有返回值,則不包含
代碼如下:
?php
/*如手冊上的舉例*/
$email = ‘user@example.com’;
$domain = strstr($email, ‘@’);
echo $domain;
// prints @example.com
?
2. stristr: 它和strstr的使用方法完全一樣.唯一的區別是stristr不區分大小寫.
3. strpos: 返回boolean值.FALSE和TRUE不用多說.用 “===”進行判斷.strpos在執行速度上都比以上兩個函數快,另外strpos有一個參數指定判斷的位置,但是默認為空.意思是判斷整個字符串.缺點是對中文的支持不好.
PHP判斷字符串的包含代碼如下:
$str= ‘abc’;
$needle= ‘a’;
$pos = strpos($str, $needle);
4. 用explode進行判斷
PHP判斷字符串的包含代碼如下:
function checkstr($str){
$needle = “a”;//判斷是否包含a這個字符
$tmparray = explode($needle,$str);
if(count($tmparray)1){
return true;
} else{
return false;
}
}
php strlen utf8一個中文算3個字節嗎?
utf8是變長編碼, 不一定是3字節, 可能是2~3, 當然ASCII字符還是1字節.gbk也是變長編碼, 非ASCII的2字節, ASCII還是1字節.這兩個編碼對於非ASCII字符, 都是多字節的, 並且多字節字符每個字節都是127的, 也就是負數(最高位是1).另外, PHP里的strlen不是依靠判斷字符串結尾的, 因為PHP是腳本語言, 它的字符串和C++的string是一樣的, 將存儲的字節個數當作字符串長度.另外, PHP里想數數有多少個字節用strlen, 想數數有多少個字符, 用mb系列函數, 自己去了解一下.還有些需求, 比如字符串匹配查找之類的, gbk是存在雙字節匹配問題的, 兩個連續漢字的中間2個字節可能被誤認為其他字符, 所以不能用strstr之類的字節匹配函數(PHP里是純字節匹配的, 不關心), 但utf-8是可以的, 它不會有類似的衝突, 另外最好的做法當然還是用mb系列, 安全可靠, 而且還支持猜編碼功能.
原創文章,作者:GBMU,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/140114.html