Heim >Backend-Entwicklung >PHP-Problem >So erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält

So erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält

青灯夜游
青灯夜游Original
2022-09-22 19:10:556346Durchsuche

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.

So erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält

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. ''即可。

正则表达式为:/[^x{4E00}-x{9FFF}]+/u

Der reguläre Ausdruck lautet: /[^x{4E00}-x{9FFF}]+/u

So erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält

$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===''

  • Wenn sie gleich ist, enthält die ursprüngliche Zeichenfolge kein Chinesisch Originalzeichen Die Zeichenfolge enthält Chinesisch

Implementierungscode:

function f($str){
	echo "原字符串:";
	var_dump($str);
	$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
	$newStr=preg_replace($pattern,'', $str);
	if($newStr===''){
		echo "字符串中不包含中文
"; }else{ echo "字符串中包含中文
"; } }
Rufen Sie die obige f($str)-Funktion auf

$str1= 'php中文网!-=1548';
f($str1);
$str2 = "123456";
f($str2);

So erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält

Anweisungen:

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.

    $limit: Optionaler Parameter, die maximale Anzahl von Ersetzungen pro Muster für jedes $subject. Der Standardwert ist -1 (unendlich).
  • $count: optionaler Parameter, falls angegeben, wird mit der Anzahl der abgeschlossenen Ersetzungen gefüllt.
  • Wenn $subject ein Array ist, gibt die Funktion preg_replace() ein Array zurück, andernfalls gibt sie einen String zurück.
  • Wenn die Funktion preg_replace() eine Übereinstimmung findet, gibt sie das ersetzte $subject zurück, ansonsten das unveränderte $subject. Jeder Parameter der Funktion preg_replace() (außer dem Parameter $limit) kann ein Array sein. Wenn der Parameter $pattern und der Parameter $replacement beide Arrays sind, verarbeitet die Funktion die Schlüssel in der Reihenfolge, in der sie im Array erscheinen. Tritt ein Fehler auf, wird NULL zurückgegeben.
  • Der Parameter $replacement kann Rückverweise \n oder $n enthalten, letzteres wird syntaktisch bevorzugt. Jeder dieser Verweise wird durch den Text ersetzt, der von der n-ten übereinstimmenden Erfassungsuntergruppe erfasst wurde. n kann zwischen 0 und 99 liegen, wobei \0 und $0 den vollständigen Mustervergleichstext darstellen.
Die Methode zur Zählung der Seriennummern zum Erfassen von Untergruppen lautet: Die linke Klammer, die die erfassende Untergruppe darstellt, wird von links nach rechts beginnend bei 1 gezählt. Wenn Sie Backslashes in $replacement verwenden möchten, müssen Sie 4 ("\\" verwenden, da dies zuerst ein PHP-String ist, dann zwei nach dem Escapezeichen und dann als Originaltext betrachtet wird, nachdem er den Backslash der regulären Ausdrucks-Engine durchlaufen hat).

Wenn Sie im Ersetzungsmodus arbeiten und auf den Rückverweis eine andere Zahl folgen muss (zum Beispiel: Hinzufügen einer ursprünglichen Zahl direkt nach einem passenden Muster), können Sie keine Syntax wie \1 verwenden, um den Rückverweis zu beschreiben. Beispielsweise führt \11 dazu, dass preg_replace() nicht verstehen kann, ob eine \1-Rückreferenz gefolgt von einer ursprünglichen 1 oder eine \11-Rückreferenz gefolgt von nichts gewünscht wird. Die Lösung besteht in diesem Fall darin, ${1}1 zu verwenden. Dadurch wird eine separate Rückreferenz für $1 erstellt, eine separate Rückreferenz für Quelle 1.

当使用被弃用的 e 修饰符时,这个函数会转义一些字符(即:'、"、\ 和 NULL)然后进行后向引用替换。当这些完成后请确保后向引用解析完后没有单引号或双引号引起的语法错误(比如:'strlen(\'$1\')+strlen("$2")')。确保符合 PHP 的字符串语法,并且符合 eval 语法。因为在完成替换后,引擎会将结果字符串作为 php 代码使用 eval 方式进行评估并将返回值作为最终参与替换的字符串。

恒等式(===)运算符

恒等式(===)运算符是进行给定变量或值之间的严格比较;它比较,并查看两个变量(表达式或常量)是否值相等且具有相同的数据类型,即两者都是字符串或两者都是整数等等。

如果两个变量(表达式或常量)包含相同的值和相同的数据类型,则此运算符返回true,否则返回false。

示例:

<?php 
header("content-type:text/html;charset=utf-8");  
// 给变量赋整数值
$x = 999; 
echo &#39;$x=&#39;.$x."<br>"; 
// 给变量赋字符串值
$y = &#39;999&#39;; 
echo &#39;$y=&#39;.$y."<br>"; 
//比较$x 和$y 
if ($x === $y) 
    echo &#39;$x和$y相等&#39;; 
else
    echo &#39;$x和$y不相等&#39;; 
?>

输出:

So erkennen Sie in PHP, ob eine Zeichenfolge chinesische Zeichen enthält

说明:在上面的例子中,$ 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn