Rumah >pembangunan bahagian belakang >tutorial php >PHP Master | Pengenalan kepada fungsi CType

PHP Master | Pengenalan kepada fungsi CType

Christopher Nolan
Christopher Nolanasal
2025-02-24 08:44:10946semak imbas

Penjelasan terperinci mengenai fungsi CTYPE PHP: Alat Pengesahan Jenis Karakter

PHP Master | An Introduction to Ctype Functions

mata teras

    Keluarga fungsi CType yang termasuk dalam Php 4.2 dan ke atas digunakan untuk mengesahkan jenis aksara dalam rentetan dan sering digunakan untuk pengesahan data. Mereka boleh menyemak sama ada rentetan mengandungi hanya aksara modal, nombor, aksara heksadesimal, dll. Tetapi pastikan untuk memastikan bahawa rentetan yang diluluskan dalam fungsi -fungsi ini sentiasa rentetan.
  • Fungsi CType adalah pelbagai jenis, termasuk
  • (aksara alfanumerik), ctype_alnum() (aksara alfanumerik), ctype_alpha() (aksara angka), ctype_digit() (aksara huruf kecil), ctype_lower() (aksara huruf besar) , dll. Setiap fungsi memeriksa sama ada setiap aksara dalam rentetan tergolong dalam jenis yang ditentukan oleh fungsi. ctype_upper() Fungsi CType
  • mudah digunakan dan amat berguna apabila mengesahkan data input borang. Tetapi mereka bukan satu -satunya cara untuk mengesahkan data. Bergantung pada keperluan khusus, fungsi lain seperti
  • , is_numeric(), is_float(), dan lain -lain juga boleh digunakan. is_integer()
  • Lanjutan CType
menyediakan satu set fungsi untuk mengesahkan bahawa aksara dalam rentetan adalah jenis yang betul. Artikel ini akan meneroka sintaks fungsi jenis aksara, fungsi khusus, dan cara menggunakannya untuk pengesahan. Jika anda menjalankan Php 4.2 atau lebih baru, pelanjutan ini didayakan secara lalai. Jika atas sebab tertentu, anda tidak dapat menahan pelanjutan ini berjalan dengan pemasangan anda, anda boleh mematikannya menggunakan suis

Compile Switch. Jika anda mempunyai latar belakang bahasa C, anda mungkin sudah biasa dengan fungsi jenis watak kerana ia berasal dari bahasa C (jangan lupa bahawa PHP sebenarnya ditulis dalam bahasa C). Tetapi jika anda menggunakan Python, adalah penting untuk menunjukkan bahawa fungsi CType PHP tidak ada kaitan dengan perpustakaan CTYPES Python. Ini adalah salah satu daripada persamaan penamaan yang tidak diingini dan tidak dapat dielakkan. --disable-ctype

Prinsip kerja

sangat sederhana. Seperti yang dinyatakan sebelum ini, fungsi -fungsi ini menyemak nilai rentetan untuk melihat apakah aksara berada dalam julat yang diberikan, atau jika setiap aksara adalah jenis yang sesuai. Sebagai contoh, anda boleh menggunakan fungsi ini untuk melihat sama ada rentetan hanya mengandungi aksara modal, atau jika ia adalah nombor, atau jika ia terdiri daripada aksara heksadesimal, atau salah satu daripada sedozen pilihan lain yang tersedia. Anda harus teliti memastikan bahawa rentetan sentiasa diluluskan. Sudah tentu anda boleh lulus dalam bilangan bulat, tetapi seperti yang ditunjukkan oleh manual PHP pada setiap halaman fungsi, anda meminta masalah:> Jika anda menyediakan bilangan bulat antara -128 dan 255 (termasuk), kemudian jelaskan nilai ASCII untuk satu aksara ( Tambah 256 kepada nilai negatif untuk membolehkan aksara dalam julat ASCII dilanjutkan). Mana -mana integer lain ditafsirkan sebagai rentetan yang mengandungi nombor perpuluhan integer.

Contoh berikut halaman

menggambarkan ini: ctype_digit()

<code class="language-php"><?php
$numeric_string = "42";
$integer        = 42;

ctype_digit($numeric_string); // true
ctype_digit($integer);        // false (ASCII 42 is '*')

is_numeric($numeric_string);  // true
is_numeric($integer);         // true</code>

Jika kita melihat kod di atas, baris pertama menilai benar. Walau bagaimanapun, pernyataan kedua adalah palsu. 42 adalah integer, yang betul, tetapi pernyataan CTYPE menilai ia sebagai satu watak ASCII tunggal, dalam kes ini asterisk. Sudah tentu, fungsi CType bukanlah satu -satunya cara untuk mengesahkan data. Bergantung pada keperluan anda, anda juga boleh menggunakan fungsi is_numeric(). Ia merawat nombor sebagai nombor dan mengembalikan nilai sebenar seperti yang ditunjukkan di bawah:

<code class="language-php"><?php
is_numeric($numeric_string);  // true
is_numeric($integer);         // true</code>

Terdapat fungsi is_* yang lain, termasuk is_float(), is_integer(), dll. Mengapa kita membincangkan fungsi is_* di sini? Hanya untuk mengingatkan anda bahawa terdapat lebih daripada satu kaedah. Malah, dalam era hari ini, saya mungkin tidak boleh mengatakannya. Ini hanya satu cara ekspresi. Jangan mengupas kulit kucing anda dan beritahu semua orang bahawa ini adalah idea saya. Hanya ada banyak cara untuk melakukan sesuatu.

Fungsi yang tersedia

Saya telah mencadangkan bahawa pemeriksaan yang luas boleh dilakukan, tetapi apakah fungsi yang ada? Apakah jenis cek yang boleh dilakukan? Senarai ini adalah seperti berikut:

  • ctype_alnum()-Semak aksara alfanumerik (a-z, huruf besar atau huruf kecil, 0-9, tiada aksara khas, tanda baca atau watak pengecualian lain).
  • ctype_alpha()-Semak aksara abjad (a-z, huruf besar atau huruf kecil).
  • ctype_cntrl() - Periksa aksara kawalan (mis. N, dan lain -lain).
  • ctype_digit()-Semak aksara angka (0-9, tiada titik perpuluhan, koma, dll.).
  • ctype_graph()-Semak aksara bercetak visual (aksara bukan kawalan atau ruang).
  • ctype_lower()-Semak aksara huruf kecil (huruf kecil A-Z sahaja, tiada nombor).
  • ctype_print() - Semak aksara yang boleh dicetak, termasuk aksara dan ruang kawalan.
  • ctype_punct() - semak watak jenis tanda baca (tiada nombor, huruf, atau ruang). Ia biasanya termasuk banyak watak "kata -kata sumpah" yang sering kita panggil watak "istimewa". @&!#
  • ctype_space()-Periksa aksara ruang (termasuk ruang dan mana-mana aksara kawalan yang meninggalkan ruang pada halaman, seperti "ruang pemecahan garis sempit" dan "pemisah vokal Mongolia").
  • ctype_upper()-Periksa aksara modal (huruf besar A-Z sahaja, tiada nombor atau aksara khas).
  • ctype_xdigit() - periksa aksara heksadesimal.

Cara menggunakan

menggunakan fungsi CType sangat mudah. Anda biasanya menetapkannya dalam pernyataan IF, jika anda ingin menguji pelbagai nilai dalam array, kadang -kadang anda membenamkannya ke dalam gelung dan kemudian periksa sama ada hasil panggilan fungsi adalah benar atau palsu. Benar bermaksud bahawa setiap aksara dalam rentetan adalah jenis watak panggilan fungsi tertentu. Berikut adalah contoh:

<code class="language-php"><?php
$numeric_string = "42";
$integer        = 42;

ctype_digit($numeric_string); // true
ctype_digit($integer);        // false (ASCII 42 is '*')

is_numeric($numeric_string);  // true
is_numeric($integer);         // true</code>

Jika nilai $string adalah "AZXC1234", anda akan melihat petunjuk bahawa ia sah. Jika nilai $string adalah "123 # axy", ia tidak sah kerana # bukan watak alfanumerik. Perhatikan bahawa jika anda lulus dalam rentetan kosong, dalam Php 5.1 dan ke atas, fungsi itu akan kembali palsu, tetapi dalam versi terdahulu, tetapi benar (ini hanya satu lagi sebab untuk menaik taraf sekarang!). Juga ingat untuk memastikan input ke fungsi ctype adalah rentetan! Jika anda mempunyai sebarang pertanyaan, pemutus tidak baik sama ada.

<code class="language-php"><?php
is_numeric($numeric_string);  // true
is_numeric($integer);         // true</code>

Kesimpulan

itu sahaja! Fungsi -fungsi ini harus dimasukkan ke dalam pemasangan PHP anda (jika tidak, maka anda pasti perlu menaik taraf atau berhenti menetapkan tetapan PHP yang pelik). Selagi anda hanya memasuki rentetan, mereka mudah digunakan. Jadi di mana anda akan menggunakannya? Nah, apabila anda perlu memperkenalkan rentetan dari bentuk, anda boleh menggunakannya untuk menguji kesahihan data yang diproses. Sebenarnya, kemungkinannya tidak berkesudahan.

FAQ fungsi ctype Php (FAQ)

Apakah penggunaan utama fungsi CType dalam PHP?

Fungsi CType dalam PHP digunakan untuk memeriksa sama ada jenis atau nilai aksara atau rentetan tertentu sepadan dengan syarat -syarat tertentu. Fungsi ini amat berguna apabila anda perlu mengesahkan format input anda atau periksa data. Sebagai contoh, anda boleh menggunakan ctype_digit() untuk memeriksa sama ada rentetan terdiri daripada nombor sahaja, atau gunakan ctype_alpha() untuk memeriksa sama ada rentetan terdiri daripada huruf sahaja.

Bagaimana untuk membolehkan fungsi CTYPE dalam PHP?

Fungsi CType

diaktifkan secara lalai dalam PHP. Walau bagaimanapun, jika anda mendapati mereka tidak tersedia, anda mungkin perlu memasang atau mengaktifkan sambungan CType. Ini boleh dilakukan dengan uncommenting garis "lanjutan = ctype" dalam fail php.ini dan memulakan semula pelayan web. Jika pelanjutan tidak dipasang, anda mungkin perlu memasangnya menggunakan pengurus pakej pelayan.

Bolehkah saya menggunakan fungsi ctype dengan jenis data bukan string?

Fungsi CType

direka untuk mengendalikan rentetan. Jika anda lulus nilai bukan rentetan ke fungsi CType, tukar ke rentetan sebelum menggunakan fungsi tersebut. Jika nilai tidak boleh diwakili dengan tepat sebagai rentetan, ia boleh mengakibatkan hasil yang tidak dijangka. Oleh itu, adalah disyorkan untuk sentiasa menggunakan rentetan dengan fungsi CTYPE.

Adakah fungsi CType kes sensitif?

Ya, fungsi CType adalah sensitif kes. Sebagai contoh,

akan kembali benar untuk "ABC", tetapi palsu untuk "ABC". Jika anda ingin melakukan pemeriksaan kes-tidak sensitif, anda boleh menggunakan fungsi ctype_alpha() atau strtolower() untuk menukar rentetan ke huruf kecil atau huruf besar sebelum lulus ke fungsi ctype. strtoupper()

Bagaimana menggunakan fungsi CType untuk memeriksa sama ada rentetan mengandungi hanya aksara abjad angka?

anda boleh menggunakan fungsi

untuk memeriksa sama ada rentetan mengandungi hanya aksara alfanumerik. Jika rentetan terdiri daripada huruf dan nombor sahaja, fungsi ini kembali benar, jika tidak palsu. ctype_alnum()Apakah perbezaan antara

ctype_digit() dan is_numeric()?

Walaupun kedua -dua fungsi digunakan untuk memeriksa sama ada rentetan mengandungi nilai angka, terdapat perbezaan utama. ctype_digit() Fungsi mengembalikan benar hanya jika rentetan terdiri sepenuhnya daripada nombor. Sebaliknya, is_numeric() mengembalikan benar jika rentetan mengandungi sebarang nilai angka (termasuk nombor titik terapung dan nombor dalam notasi saintifik).

Bolehkah fungsi CType mengendalikan aksara multibyte?

Tidak, fungsi CType tidak dapat mengendalikan aksara multibyte. Mereka direka untuk mengendalikan watak ASCII sahaja. Jika anda perlu berurusan dengan aksara multibyte, anda harus menggunakan lanjutan mbstring sebaliknya.

Adakah fungsi CType tersedia dalam semua versi PHP?

Sejak versi 4.0.4, fungsi CTYPE disediakan dalam PHP. Walau bagaimanapun, mereka tidak didayakan secara lalai dalam semua versi. Dalam Php 5.2.0 dan kemudian, mereka didayakan secara lalai.

Bolehkah saya mengesahkan input pengguna menggunakan fungsi ctype?

Ya, fungsi CType biasanya digunakan untuk mengesahkan input pengguna. Mereka dapat membantu memastikan input sepadan dengan format yang diharapkan, yang membantu mencegah kesilapan dan kelemahan keselamatan.

Bagaimana menggunakan fungsi CType untuk memeriksa sama ada rentetan hanya mengandungi ruang?

Tidak ada fungsi CType khusus untuk memeriksa ruang. Walau bagaimanapun, anda boleh menggunakan fungsi ctype_space() untuk memeriksa sama ada rentetan hanya mengandungi aksara ruang. Jika rentetan terdiri daripada hanya aksara ruang, fungsi ini kembali benar, jika tidak palsu.

Atas ialah kandungan terperinci PHP Master | Pengenalan kepada fungsi CType. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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