php替換中文,PHP中文替換

//定義編碼

header(?'Content-Type:text/html;charset=utf-8 ');

$words=array('我','你','他');

$content="測一測我是不是違禁詞";

$banned=generateRegularExpression($words);

//檢查違禁詞

$res_banned=check_words($banned,$content);

write_html($content,$res_banned);

/**

* @describe 數組生成正則表達式

* @param array $words

* @return string

*/

function?generateRegularExpression($words)

{

$regular?= implode('|',?array_map('preg_quote',?$words));

return?"/$regular/i";

}

/**

* @describe 字符串 生成正則表達式

* @param array $words

* @return string

*/

function?generateRegularExpressionString($string){

$str_arr[0]=$string;

$str_new_arr=??array_map('preg_quote',?$str_arr);

return?$str_new_arr[0];

}

/**

* 檢查敏感詞

* @param $banned

* @param $string

* @return bool|string

*/

function?check_words($banned,$string)

{????$match_banned=array();

//循環查出所有敏感詞

$new_banned=strtolower($banned);

$i=0;

do{

$matches=null;

if?(!empty($new_banned) && preg_match($new_banned,?$string,?$matches)) {

$isempyt=empty($matches[0]);

if(!$isempyt){

$match_banned?=?array_merge($match_banned,?$matches);

$matches_str=strtolower(generateRegularExpressionString($matches[0]));

$new_banned=str_replace("|".$matches_str."|","|",$new_banned);

$new_banned=str_replace("/".$matches_str."|","/",$new_banned);

$new_banned=str_replace("|".$matches_str."/","/",$new_banned);

}

}

$i++;

if($i>20){

$isempyt=true;

break;

}

}while(count($matches)>0 && !$isempyt);

//查出敏感詞

if($match_banned){

return?$match_banned;

}

//沒有查出敏感詞

return?array();

}

/**

* 打印到頁面上

* @param $filepath

* @param $res_mingan

* @param $res_banned

*/

function?write_html($content,$res_banned){

print_r($content);

if($res_banned){

print_r("? 違禁詞(".count($res_banned)."):".implode('|',$res_banned));

}

echo?"
";

}

1、匹配中文

$str = "中文“;

preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$str,$match);

2、替換中文:

在所在的php文件里,要加上

mb_internal_encoding("UTF-8");

mb_regex_encoding("UTF-8");

這樣才能支持多字節進行模式匹配。詳細介紹:http://blog.chinaunix.net/uid-20279807-id-1711213.html

3、php提供了四個替換函數,分別是str_replace,preg_replace,mb_ereg_replace,ereg_replace(在php7.1已經摒棄掉)

在替換中文時,發現用preg_replace替換中文最合適.

str_replace 不支持正則表達式,不能完全匹配,導致局部字段被替換。例如: $str = "模塊一 模塊一斷電",$str = str_replace("模塊一","module1",$str);,導致"模塊一斷電"被替換成"module1斷電"。

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) ?支持$pattern,$replacement?以數組的方式進行查找替換,但數組過多時,進行搜索匹配,耗CPU嚴重。

mb_ereg_replace 支持正則表達式,但不用分隔符//進行匹配,但使用mb_ereg_replace,發現有些中文匹配不了。具體原因暫不清楚。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395011.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395011.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395011.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

secoclient隧道保活超時或協商超時_推薦:承德市隧道led大屏廠家電話【聯豐智慧科技】...

通過為大型隧道施工建設搭建全覆蓋式的定位,可以有效施工的效率、項目現場的保障能力。安裝隧道門禁能解決哪些問題?近年來,我國交通建設正處于高速發展的階段,在交通建設中,工程安防工作也越發受到,越來越…

JavaScript Essentials:如何為循環而煩惱

by Zell Liew由Zell Liew JavaScript Essentials:如何為循環而煩惱 (JavaScript Essentials: how to wrap your head around for loops) Let’s say you want to run a function, bounceBall, four times. How would you do it? Like this?假設您要運行一次功能b…

python中的類的成員變量以及property函數

1 python類的各種變量 1.1 全局變量 在類外定義的變量。 1.2 類變量 定義在類里面,所有的函數外面的變量。這個變量只有一份,是所有的對象共有的。在類外用“類.”來引用。 1.3 實例變量 用self.xxx在類的任何函數中定義的變量就是實例變量。在類內用“s…

C++常用的系統函數

數學<math.h>&#xff1a; 1 三角函數 double sin (double); double cos (double); double tan (double); 2 反三角函數 double asin (double); 結果介于[-PI/2, PI/2] double acos (double); 結果介于[0, PI] double atan (double); 反正切(主值), 結果介于[-PI/2, PI/2…

網頁特效java代碼,美化網頁常用特效代碼

1&#xff0e;讓文字不停地滾動&#xff1c;MARQUEE&#xff1e;滾動文字&#xff1c;/MARQUEE&#xff1e;2&#xff0e;記錄并顯示網頁的最后修改時間&#xff1c;script languageJavaScript&#xff1e;document.write("最后更新時間: " document.lastModified …

作業,兩次實驗

實驗一&#xff1a; 1 編程打印5行的倒三角形&#xff0c;第一行打印9個*&#xff0c;第二行7個*&#xff0c;……第5行打印1個* #include<stdio.h>int main(){printf("*********\n *******\n *****\n ***\n *\n");return 0;} 總結 注意換行以及位置的…

javaweb和ajax使用查詢出來的數據做下拉菜單_區塊鏈瀏覽器實用指南篇:利用鏈上數據把握減半行情...

進入2020年&#xff0c;加密貨幣市場最熱的話題當屬“減半”了。在減半行情的推動下&#xff0c;以BTC為首的減半幣種展現出了極強的上行趨勢。如何抓住這一波行情&#xff0c;評估正確時機&#xff1f;當然&#xff0c;這個問題的答案可以說是爭議紛紛&#xff0c;但有一個參考…

純函數式編程語言_純功能編程語言如何改變您的生活。

純函數式編程語言by Andrea Zanin由Andrea Zanin 純功能編程語言如何改變您的生活。 (How a purely functional programming language can change your life.) I believe everyone should learn Haskell, even if you won’t use it in your work. It’s beautiful, and it ch…

Win10 教育版

Windows 10 版本 1607 引入了專為 K-12 機構的特有需求而設計的兩個版本&#xff1a;Windows 10 專業教育版和 Windows 10 教育版。 這些版本為不斷發展的 K-12 教育 IT 環境提供特定于教育的默認設置。Windows 10 專業教育版Windows 10 專業教育版基于 Windows 10 專業版的商業…

java中的排序方法,Java中的排序比較方式:自然排序和比較器排序

這里所說到的Java中的排序并不是指插入排序、希爾排序、歸并排序等具體的排序算法。而是指執行這些排序算法時&#xff0c;比較兩個對象“大小”的比較操作。我們很容易理解整型的 i>j 這樣的比較方式&#xff0c;但當我們對多個對象進行排序時&#xff0c;如何比較兩個對象…

ImageView縮放選項

ImageView.ScaleType 將圖片邊界縮放到所在view邊界時的縮放選項。 Options for scaling the bounds of an image to the bounds of this view. 不同選項含義 CENTER 居中&#xff0c;不縮放。 Center the image in the view, but perform no scaling. CENTER_CROP 居中&#x…

css命名_CSS命名約定將節省您的調試時間

css命名I have heard lots of developers say they hate CSS. In my experience, this comes as a result of not taking the time to learn CSS.我聽到很多開發人員說他們討厭CSS。 以我的經驗&#xff0c;這是因為沒有花時間學習CSS。 Korean ??韓文?? ??: ??? ?…

電腦刪除快捷鍵_可能是知乎最有用的 Windows 快捷鍵學習指南。

在任何地方搜索“快捷鍵的使用”&#xff0c;你都能找到無數的列表清單。但你應該不會專門去對照一個個的表單&#xff0c;企圖把所有快捷鍵全部掌握吧&#xff1f;經過三年左右的總結和視頻制作&#xff0c;Topbook 大概產出了 20 支左右的快捷鍵、快捷操作及應用等相關的視頻…

java自動依照日期建表,腳本根據一個表中的日期字段填充每月匯總表

你想在這里做兩件事 . 我假設您正在使用Oracle(因為您正在使用Java) .首先&#xff0c;您希望對每個用戶的每日交易進行分組 .創建一個名為 tempTable 的臨時表 .使用 to_char(currentdate, yyyy/mm/dd) 對它們進行分組 .INSERT INTO tempTableSELECTuserid,resourceid,doc_nam…

算法專題 普及組【2008】三3 C++版

轉載于:https://www.cnblogs.com/qilinart/articles/5914850.html

linux用戶修改用戶shell

要拒絕系統用戶登錄,可以將其shell設置為/usr/sbin/nologin或者/bin/false # usermod -s /usr/sbin/nologin username 或者 # usermod -s /bin/false username /bin/false/bin/false什么也不做只是返回一個錯誤狀態,然后立即退出。將用戶的shell設置為/bin/false,用戶會無法登錄…

【覆蓋安裝】通用測試點

需要xmind文檔請留言將會私發。 轉載于:https://www.cnblogs.com/syw20170419/p/10457600.html

instagram架構_如何創建像Instagram這樣的照片共享應用程序:基本知識。

instagram架構by Dmytro Brovkin由Dmytro Brovkin 如何創建像Instagram這樣的照片共享應用程序&#xff1a;基本知識。 (How to create a photo sharing app like Instagram: the basics.) After two centuries of rapid development, photography has come a long way from b…

菜鳥裹裹電腦版_【綿陽最新轉讓】3500低價出售家用制氧機!東芝i5筆記本電腦、索尼微單相機、聯想筆記本電腦、奶茶店、服裝店轉讓......

轉換價值&#xff0c;傳承夢想西蜀網讓你淘好物~3500出售魚躍家用制氧機&#xff0c;帶霧化全新魚躍152021/9F_5W型家用制氧機&#xff0c;帶霧化。正規醫療器械公司買的&#xff0c;有小票&#xff0c;買到只用了一次&#xff0c;買成4382現低價轉讓。聯系電話&#xff1a;鄧女…

認識軟件性能測試10大誤區

曾經我們幫助客戶進行軟件性能測試的時候&#xff0c;客戶不解的問&#xff0c;不是必須通過功能測試后才可以測試性能嗎&#xff1f;可能有很多人會存在這樣的疑問&#xff0c;在這里&#xff0c;我們的多位專家根據多年經驗總結出性能測試的10大誤區&#xff0c;希望能給大家…