Heim >Backend-Entwicklung >PHP-Problem >So erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält
Erkennungsschritte: 1. Verwenden Sie preg_replace() mit regulären Ausdrücken, um die Zeichenfolge zu filtern und nicht-chinesische Buchstaben in der Zeichenfolge zu entfernen. Die Syntax lautet „preg_replace(“/[^x{4E00}-x{9FFF}]+/. u" ,'', original string)" gibt einen Filterstring zurück, der alle chinesischen Buchstaben enthält. 2. Verwenden Sie "===", um zu bestimmen, ob der Filterstring ein leerer String ist. Die Syntax lautet "filter string ===''; “, wenn es gleich ist, enthält die Originalzeichenfolge keine chinesischen Zeichen, andernfalls enthält die Originalzeichenfolge chinesische Zeichen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, DELL G3-Computer
In PHP können Sie die Funktion preg_replace() und den Operator „===" verwenden, um zu erkennen, ob die Zeichenfolge enthält Chinesisch.
Implementierungsschritte:
Schritt 1: Verwenden Sie die Funktion preg_replace() mit regulären Ausdrücken, um Zeichenfolgen zu filtern und nicht-chinesische Buchstaben in den Zeichenfolgen zu entfernen.
Die Funktion preg_replace() kann die Suche nach regulären Ausdrücken und ausführen Ersetzen; Verwenden Sie einfach reguläre Ausdrücke, um nach nicht-chinesischen Buchstaben in der Zeichenfolge zu suchen und diese durch leere Zeichen ''
zu ersetzen. ''
即可。
Der reguläre Ausdruck lautet:正则表达式为:
/[^x{4E00}-x{9FFF}]+/u
/[^x{4E00}-x{9FFF}]+/u
$pattern = "/[^\x{4E00}-\x{9FFF}]+/u"; $newStr=preg_replace($pattern,'', $str);
gibt eine gefilterte Zeichenfolge zurück, die alle chinesischen Buchstaben enthält
Schritt 2: Verwenden Sie den Operator „===“, um zu bestimmen, ob die gefilterte Zeichenfolge eine leere Zeichenfolge ist.$newStr===''
function f($str){
echo "原字符串:";
var_dump($str);
$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
$newStr=preg_replace($pattern,'', $str);
if($newStr===''){
echo "字符串中不包含中文
Rufen Sie die obige f($str)-Funktion auf
";
}else{
echo "字符串中包含中文
";
}
}
$str1= 'php中文网!-=1548'; f($str1); $str2 = "123456"; f($str2);
preg_ replace()-Funktion
preg_replace () Die Funktion kann die Suche und Ersetzung regulärer Ausdrücke durchführen. Es handelt sich um eine leistungsstarke Funktion zum Ersetzen von Zeichenfolgen Gesucht werden kann ein Zeichenstring oder ein String-Array;
$replacement: String oder String-Array zum Ersetzen. Wenn dieses Argument ein String und $pattern ein Array ist, werden alle Muster durch diesen String ersetzt. Wenn $pattern und $replacement beide Arrays sind, wird jedes $pattern durch das entsprechende Element in $replacement ersetzt. Wenn $replacement weniger Elemente enthält als $pattern, wird das zusätzliche $pattern durch die leere Zeichenfolge ersetzt.
$subject: Der zu durchsuchende und zu ersetzende String oder String-Array. Wenn $subject ein Array ist, wird die Suche und Ersetzung für jedes Element von $subject durchgeführt, und der Rückgabewert ist ebenfalls ein Array.
当使用被弃用的 e 修饰符时,这个函数会转义一些字符(即:'、"、\ 和 NULL)然后进行后向引用替换。当这些完成后请确保后向引用解析完后没有单引号或双引号引起的语法错误(比如:'strlen(\'$1\')+strlen("$2")')。确保符合 PHP 的字符串语法,并且符合 eval 语法。因为在完成替换后,引擎会将结果字符串作为 php 代码使用 eval 方式进行评估并将返回值作为最终参与替换的字符串。
恒等式(===)运算符
恒等式(===)运算符是进行给定变量或值之间的严格比较;它比较,并查看两个变量(表达式或常量)是否值相等且具有相同的数据类型,即两者都是字符串或两者都是整数等等。
如果两个变量(表达式或常量)包含相同的值和相同的数据类型,则此运算符返回true,否则返回false。
示例:
<?php header("content-type:text/html;charset=utf-8"); // 给变量赋整数值 $x = 999; echo '$x='.$x."<br>"; // 给变量赋字符串值 $y = '999'; echo '$y='.$y."<br>"; //比较$x 和$y if ($x === $y) echo '$x和$y相等'; else echo '$x和$y不相等'; ?>
输出:
说明:在上面的例子中,$ x和$ y的值相等但数据类型不同,因而返回false,执行else部分。
推荐学习:《PHP视频教程》
Das obige ist der detaillierte Inhalt vonSo erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!