㈠ 如何更改PHP頁面中的禁止中文名注冊
if ( !eregi( "^[0-9a-z]{1,20}\$", $password ) )
{
$CheckString .= $strRegNotice6."<br>";
$ifok = 0;
}
//0-9a-z這句話就是判斷是不是字母
㈡ php 如何過濾漢字啊
用正則過濾,使用[xa0-xff]可以匹配漢字
echopreg_replace('([xa0-xff]+)','',$txt);
㈢ WordPress中文漢字用戶名不能注冊怎麼辦
注冊時,WP默認使用sanitize_user( $username, true );進行嚴格過濾。
自2.0.1版本起,sanitize_user就已提供hook,給開發者留了條路,所以一切皆有可能。
add_filter('sanitize_user','rebuild_sanitize_user',999,3);
functionrebuild_sanitize_user($username,$raw_username,$strict){
return$raw_username;
}
將上段代碼放在當前theme的functions.php文件中,再至後台中文注冊試一試,效果立顯。
PS: 該段代碼只是簡易測試,應參考sanitize_user進行必要的安全過濾。
㈣ php替換過濾中文為什麼無效
function file_vname($name)
{
return str_replace(
array('\\', '/', ':', '*', '?', '"', '<', '>', '|', ' ', "'", '$', '&', '%', '#', '@', '!', '喜歡', '-', '的', '優質', ',', '「', '」', '『', '』', '歡迎', '優惠', '服務', '等級', '好', ',', ',', '。', '.', '(', ')', '(', ')'),
'',
$name);
}
$name = "1\\/:*?\"<>| '$2&%#@!喜歡-的3優質,「」『』歡迎優惠服務4等級5好,,6。.()7()8";
echo file_vname($name);
不能匹配中文,我覺得比較大的可能是因為編碼問題, 比如你的php文件寫的是gb2312, 而要處理的字元可能是utf8, 那麼不同的編碼, 內容其實是不同的, 即便看起來一樣, 仍然是不同的,不能匹配上, 也就無法使用, 你要做的, 就是搞清楚要處理的數據是什麼編碼, 再看清楚直接php文件的編碼, 保持兩邊一致
比如說你的輸出網頁中, 有這樣一行
<meta http-equiv=content-type content="text/html; charset=gb2312">
那麼提交時,就會提交gb2312的字元, 如果結尾是utf-8,那麼提交的就是utf-8的內容, 此時如果你的php文件編碼與此不同, 你的函數就會匹配不到中文
順便的,你看看我改過的,
你的喜歡這個單詞結尾沒有單引號
另外,str_replace並不需要兩個參數是完全對應長度的內容, 第一參數是數組,而替換都統一的話,就可以直接寫一個空字元串即可
㈤ php程序,注冊時只允許使用中文用戶名注冊,如何進行判斷
用正則匹配函數就可以,如:
$str="大俠abc";
$rst=preg_match('/[u4e00-u9fa5]/i',$str,$match);//這里$rst=1;如果$str全為中文,則$rst=0;判斷一下即可完成
㈥ PHP用戶注冊實現用戶名為 中文 如何實現
SQL語句沒有任何問題 問題就在於這里
if($info==true)
echo 0; //用戶名已經存在!,不可以注冊~
else
你可以這樣判斷
1、判斷結果集條數是否大於0
$info=mysql_num_rows($result); if($info>0){echo 0;}
2、判斷是否為數組
if(is_array($info)){echo 0;}
3、判斷返回的結果集里的某一欄位是否不為空
if(!empty($info['user_name'])){echo 0;}
另外如果欄位為字元串格式 這樣寫 user_name = '".$username."'或者 user_name = '$username'
int 類型這樣寫 user_name = ".$username." 或者 user_name = $username
都是可以的 時間格式 資料庫為 DATATIME或DATA 這樣寫 date = now()
SELECT 的時候 最好不要用 * 因為有的欄位你根本不需要讀取出來 會造成資源的浪費 最好用哪個欄位 你就SELECT哪個欄位。
㈦ PHP怎樣過濾中文狀態下特殊字元(比如標點符號)
functionfilterGBK_SpecialChars($str)
{
$str=urlencode($str);//將關鍵字編碼
//下面的必須寫在一行,不可換行截斷
$str=preg_replace("/(%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|
%2A|%28|%29|%2B|%7C|%5C|%3D|-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|
%3F|%3E|%3C|%2C|.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|
%7D|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|
%A3%A9|%A3%A8|%A1%AD|%A3%A4|%A1%A4|%A3%A1|%A1%AB|%A3%FB|%A3%FD|%A1%BE|
%A1%BF|)+/",'',$str);
$str=urldecode($str);//將過濾後的關鍵字解碼
return$str;
}
$str='廣~·@#¥%……&*()——+|-=、{}【】:;「」『』~「《》,。?、州;?海【,鮮。餐「」】(,廳)';
echofilterGBK_SpecialChars($str);
㈧ PHP把一個變數中的中文提取出來,把英文過濾了
判斷ASCII,如果大於255認為是中文,保留;否則拋棄
㈨ PHP中如何過濾掉非漢字字元
首先需要先把來帶有中文的字元串自進行編碼轉化,由GB2312編碼轉化為UTF-8編碼。
這樣是為了PHP正則表達式可以正確的去匹配
然後通過preg_match_all()函數以及相應的中文匹配正則表達式,把所有的中文匹配出來
最後,把匹配到的中文字元串再轉為B2312編碼,這樣做是為了可以在網頁編碼為GB2312上正確顯示。
例如:
<?php
$str = "ddddvvv(,中文.)dfdsfds字元啊.";
//把GB2312編碼轉化為 UTF-8編碼
$str = mb_convert_encoding($str, 'UTF-8', 'GB2312');
//正則匹配
preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str, $matches);
//把匹配到的數組連接為字元串
$str = implode('', $matches[0]);
//把UTF-8編碼轉化為 GB2312編碼
$str = mb_convert_encoding($str, 'GB2312', 'UTF-8');
echo $str;
//輸出 中文字元啊
?>