Bagaimana untuk mengesan sama ada rentetan mengandungi aksara Cina dalam php

青灯夜游
Lepaskan: 2023-03-16 21:12:02
asal
6331 orang telah melayarinya

Langkah pengesanan: 1. Gunakan preg_replace() dengan ungkapan biasa untuk menapis rentetan dan mengalih keluar huruf bukan Cina dalam rentetan ialah "preg_replace("/[^x{4E00}-x{9FFF} ] /u",'', rentetan asal)" akan mengembalikan rentetan penapis yang mengandungi semua huruf Cina 2. Gunakan "===" untuk menentukan sama ada rentetan penapis ialah rentetan kosong, sintaks "rentetan penapis ==" = ''", jika sama, rentetan asal tidak mengandungi aksara Cina, jika tidak, rentetan asal mengandungi aksara Cina.

Bagaimana untuk mengesan sama ada rentetan mengandungi aksara Cina dalam php

Persekitaran pengendalian tutorial ini: sistem windows7, PHP versi 8.1, komputer DELL G3

Dalam php, anda boleh menggunakan fungsi preg_replace () dan operator "===" untuk mengesan sama ada rentetan mengandungi aksara Cina.

Langkah pelaksanaan:

Langkah 1: Gunakan fungsi preg_replace() dengan ungkapan biasa untuk menapis rentetan dan alih keluarnya Huruf bukan Cina dalam rentetan

fungsi preg_replace() boleh melakukan carian dan penggantian ungkapan biasa anda hanya perlu menggunakan ungkapan biasa untuk mencari huruf bukan Cina dalam rentetan dan menggantikannya dengan Hanya gunakan aksara kosong ''.

Ungkapan biasa ialah: /[^x{4E00}-x{9FFF}] /u

$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
$newStr=preg_replace($pattern,'', $str);
Salin selepas log masuk

Bagaimana untuk mengesan sama ada rentetan mengandungi aksara Cina dalam php

akan mengembalikan rentetan penapis yang mengandungi semua huruf Cina

Langkah 2: Gunakan operator "===" untuk menentukan sama ada rentetan penapis ialah rentetan kosong

$newStr===''
Salin selepas log masuk
  • Jika sama, maka rentetan asal tidak mengandungi bahasa Cina

  • Jika tidak sama, rentetan asal mengandungi bahasa Cina

kod pelaksanaan : <. 🎜>

function f($str){
	echo "原字符串:";
	var_dump($str);
	$pattern = "/[^\x{4E00}-\x{9FFF}]+/u";
	$newStr=preg_replace($pattern,'', $str);
	if($newStr===&#39;&#39;){
		echo "字符串中不包含中文
"; }else{ echo "字符串中包含中文
"; } }
Salin selepas log masuk
Panggil fungsi f($str) di atas


$str1= &#39;php中文网!-=1548&#39;;
f($str1);
$str2 = "123456";
f($str2);
Salin selepas log masuk

Bagaimana untuk mengesan sama ada rentetan mengandungi aksara Cina dalam php

Arahan:

fungsi preg_replace()

fungsi preg_replace() boleh melakukan carian dan penggantian ungkapan biasa, dan merupakan fungsi pemprosesan penggantian rentetan yang berkuasa Format sintaks adalah seperti berikut:

preg_replace($pattern, $replacement, $subject [, $limit = -1 [, &$count]])
Salin selepas log masuk
Penerangan parameter adalah seperti berikut:

    $pattern: corak yang hendak dicari, yang boleh menjadi rentetan atau tatasusunan rentetan; penggantian: Rentetan atau tatasusunan rentetan yang digunakan untuk penggantian. Jika hujah ini ialah rentetan dan $pattern ialah tatasusunan, maka semua corak digantikan dengan rentetan ini. Jika $pattern dan $replacement adalah kedua-dua tatasusunan, setiap $pattern digantikan dengan elemen yang sepadan dalam $replacement. Jika terdapat kurang elemen dalam $replacement berbanding $pattern, $pattern tambahan digantikan dengan rentetan kosong.
  • $subject: Tatasusunan rentetan atau rentetan yang akan dicari dan digantikan Jika $subject ialah tatasusunan, carian dan penggantian akan dilakukan pada setiap elemen $subjek, dan nilai pulangan juga akan menjadi satu tatasusunan. .
  • $limit: Parameter pilihan, bilangan maksimum penggantian bagi setiap corak pada setiap $subjek. Lalai ialah -1 (tidak terhad).
  • $count: parameter pilihan, jika dinyatakan, akan diisi dengan bilangan penggantian yang lengkap.
  • Jika $subject ialah tatasusunan, fungsi preg_replace() akan mengembalikan tatasusunan, jika tidak ia akan mengembalikan rentetan.
Jika fungsi preg_replace() menemui padanan, ia akan mengembalikan $subjek yang diganti, jika tidak ia akan mengembalikan $subjek yang tidak berubah. Setiap parameter fungsi preg_replace() (kecuali parameter $limit) boleh menjadi tatasusunan. Jika parameter $pattern dan parameter $replacement adalah kedua-dua tatasusunan, fungsi akan memproses kekunci mengikut susunan ia muncul dalam tatasusunan. Jika ralat berlaku, NULL dikembalikan.

Parameter $replacement boleh mengandungi rujukan belakang \n atau $n, dengan yang terakhir diutamakan secara sintaksis. Setiap rujukan tersebut akan digantikan dengan teks yang ditangkap oleh subkumpulan penangkapan ke-n yang telah dipadankan. n boleh menjadi 0-99, dengan \0 dan $0 mewakili teks padanan corak yang lengkap.

Kaedah pengiraan nombor siri untuk menangkap subkumpulan ialah: kurungan kiri yang mewakili subkumpulan yang menangkap dikira dari kiri ke kanan, bermula dari 1. Jika anda ingin menggunakan garis miring ke belakang dalam $replacement, anda mesti menggunakan 4 ("\\" kerana ini adalah rentetan PHP pertama, kemudian dua selepas melarikan diri, dan kemudian ia dianggap sebagai teks asal selepas melalui garis miring ke belakang enjin ungkapan biasa).

Apabila bekerja dalam mod gantian dan rujukan belakang perlu diikuti oleh nombor lain (contohnya: menambah nombor asal serta-merta selepas corak yang sepadan), anda tidak boleh menggunakan sintaks \1 untuk menerangkan Rujukan Balik. Sebagai contoh, \11 akan menyebabkan preg_replace() tidak memahami sama ada anda mahu rujukan belakang \1 diikuti dengan 1 asal, atau rujukan belakang \11 diikuti dengan apa-apa. Penyelesaian dalam kes ini ialah menggunakan ${1}1. Ini mencipta rujukan belakang yang berasingan untuk $1, rujukan belakang yang berasingan untuk sumber 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;; 
?>
Salin selepas log masuk

输出:

Bagaimana untuk mengesan sama ada rentetan mengandungi aksara Cina dalam php

说明:在上面的例子中,$ x和$ y的值相等但数据类型不同,因而返回false,执行else部分。

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Bagaimana untuk mengesan sama ada rentetan mengandungi aksara Cina dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan