Rumah >pembangunan bahagian belakang >tutorial php >PHP Master | Pengenalan kepada fungsi CType
Penjelasan terperinci mengenai fungsi CTYPE PHP: Alat Pengesahan Jenis Karakter
mata teras
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 is_numeric()
, is_float()
, dan lain -lain juga boleh digunakan. is_integer()
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)
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.
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.
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? 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()
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).
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.
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.
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.
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!