php去掉中文
❶ 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;
//輸出 中文字元啊
?>
❷ PHP用str_replace()能替換中文漢字嗎
PHP能用str_replace()能替換中文漢字,替換方法為:
1、PHP進行字元串替換的兩個常用方法。
❸ 怎樣解決PHP中文亂碼問題
亂碼指的是計算機系統不能顯示正確的字元,而顯示其他無意義的字元或空白,如一堆ASCII
Code。所顯示出來的文字統稱為亂碼。亂碼是因為所使用的字元的源碼在本地計算機上使用了錯誤的顯示字型檔,或在本地計算機的字型檔中找不到相應於源碼所指代的字元所致。
通俗點講:
亂碼就是你打開王頁或郵箱,裡面的字不是全中文的,而是一些亂七八糟莫名其妙的無意義的字元組合在一起。主要是計算機的字型檔出錯所致。
1一般出現在網頁,用網頁上面的查看——編碼——簡體中文即可解決。
2
出現亂碼一般是Windows系統字型檔的問題,可能是系統錯誤或不正常關機造成的,也可能是某些軟體需要使用操作系統以外的字型檔造成的。解決辦法得看具體的問題,一般情況下的Windows亂碼可以通過以下三種方法解決。
第一種方法是下載
解決Windows
XP
SP2亂碼補丁
V1.00
(華軍軟體園)
第二種是解決Windows系統錯誤造成的亂碼問題,重啟後用F8鍵激活系統菜單,進入安全模式。等系統檢查完畢,硬碟沒有響應後再重新正常退出並重新啟動計算機,正常進入Windows,字體一般就能自動恢復。這是因為Windows在進入安全模式時會重新索引字型檔及整理菜單。
第三種解決方法用於修正軟體造成的注冊表中關於字體部分設置出錯的問題。運行「Regedit」啟動注冊表編輯器。在「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc」鍵下有
「Associated
CharSet」和「Associated
DefaultFonts」
兩個鍵。當出現漢字亂碼時,這兩個鍵中的內容就可能不正確甚至不完整。它們的正確內容應該是「Associated
CharSet」內有「(默認)、ANSI(00)、GB2312(86)、OEM(FF)、SYMBOL(02)」幾項串值,鍵值分別為「(未設置鍵值)、Yes、Yes、Yes、No」,而「Associated
DefaultFonts」內有「(默認)、AssocSystemFont、FontPackegeDecorative、FontPackegeDontCare、FontPackegeModern、FontPackegeRoman、FontPackegeScript、FontPackegeSwiss」幾項串值,鍵值分別為「(未設置鍵值)、simsun.ttf、宋體、宋體、宋體、宋體、宋體、宋體」。重新啟動系統後漢字就應該顯示正確了。建議您在修改前先備份注冊表,以防修改錯誤使系統出現問題。
❹ php preg_replace 去除中文和中文的逗號","以外全部符號怎麼寫,或者只去掉【】-這三個符號
<?php
header('Content-type: text/html; charset=utf-8');
$str='【例子1例子1】-【例子2例子2】-【簽約承諾,一年拿證,自學考試】';
$str=str_replace('【','',$str);
$str=str_replace('】','',$str);
$str=str_replace('-','',$str);
echo $str;
❺ php 正則 去掉所有標調符號,數字 和字母,只留空格分隔的中文
<?php
$str="*/123abcd只留sa";
preg_match_all('/[x{4e00}-x{9fff}]+/u',$str,$matches);
$str=join('',$matches[0]);
echo$str;
?>
輸出「只留」
完善一下,以上適用於UTF8編碼,如果是GBK的則需要轉碼,如下。
<?php
$str="*/123abcd只留sa";
$str=mb_convert_encoding($str,'UTF-8','GB2312');
preg_match_all('/[x{4e00}-x{9fff}]+/u',$str,$matches);
$str=join('',$matches[0]);
echo$str;
?>