php中字元處理注意的問題 1

2021-08-29 19:23:37 字數 1290 閱讀 8934

[b]1. in_array()函式[/b]

$zero = "0";

$za = array("00");

if(in_array($zero, $za, true))else

這段**應該輸出什麼?答案是in,而不是not in。

然後測試一下這個:

$zero = "0";

$za = array("00");

if("0" == "00")

返回'0'=='00'。

所以以後要注意:對於字串不是說in,就表示那個字元在array裡面。

[b]2. strtolower()函式[/b]

我在這裡談過:[url]我的解決方式是:

urldecode(strtolower(urlendoce($str)));

[b]3. trim()[/b]

如果面對的是英文本元,那麼trim()應該就滿足了,但是對於中文字元,就應該重寫以trim掉全形的空格:

function cntrim($value)

[b]4. empty():[/b]

這個就有點像上面那個in_array()了,如果你要判斷乙個textarea裡面是否有值,不能光使用empty,因為'0'字串也會返回empty(但奇怪的是'00'就不會返回empty),重寫以應對這種情況:

function non_szero_empty($value)

[b]5. htmlentities():[/b]

與strtolower()類似,htmlentities也會出現一些轉義gbk字元的問題,以致出現亂碼。索性這樣替換:

function _myhtmlentities($value)|x[a-fa-f0-9])|[a-za-z][a-z0-9]);)/', '&\\1', str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value));

$value = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value);

return $value;

}

不過現在還在疑惑為什麼htmlentities會出現亂碼,這樣改為什麼又可行。計畫有時間看源**一**竟。

PHP處理字元中的emoji表情

目錄 utf 8 編碼的 emoji 表情或者某些特殊字元占用 4 個位元組。utf 8 編碼的常用中文字元占用 3 個位元組。三個 php 內建函式 mixed mb strlen string str string encoding mb internal encoding 返回具有 encod...

string字串中處理字元的問題 for迴圈

對於string字串中處理某單個字串,一般採用的是下標法和普通的for迴圈。在看c primer中發現針對不同的情況可以有不同的處理方法。現總結如下 有一些c函式可以用來處理字元,主要是cctype標頭檔案中的函式,使用要包含該標頭檔案 isalnum c 當c是字母或者數字時為真 isalpha ...

php 中字串處理函式

1 查詢字元位置函式 strpos str,search,int 查詢search在 str中的第一次位置從int開始 stripos str,search,int 函式返回字串在另乙個字串中第一次出現的位置。該函式對大小寫不敏感 strrpos str,search,int 查詢search在 s...