Rumah >pembangunan bahagian belakang >tutorial php >Pisahkan rentetan menggunakan fungsi strtok() dalam PHP
Dalam pengaturcaraan PHP, pemprosesan rentetan ialah fungsi yang kerap digunakan. Salah satu fungsi manipulasi rentetan yang paling biasa digunakan ialah strtok(). Fungsi strtok() boleh memisahkan rentetan kepada beberapa subrentetan dengan menentukan pembatas. Dalam artikel ini, kami akan memperkenalkan pengetahuan dan penggunaan fungsi strtok() yang berkaitan.
1. Penggunaan asas fungsi strtok()
strtok() mengandungi dua parameter Parameter pertama ialah rentetan yang akan dipisahkan, dan parameter kedua ialah pemisah yang ditentukan. Nilai pulangan fungsi ialah subrentetan yang dibahagikan pada masa ini.
Contoh kod:
$str = "Hello, World! How are you today?"; $delimiter = " ,!"; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
Dalam contoh di atas, kami menggunakan fungsi strtok() untuk memisahkan rentetan $str kepada berbilang subrentetan menggunakan koma, ruang dan tanda seru sebagai pembatas. Hasil pelaksanaan adalah seperti berikut:
Hello World How are you today?
Dalam kod di atas, kami menggunakan gelung sementara Setiap gelung menggunakan fungsi strtok() untuk mendapatkan subrentetan $token dan kemudian mengeluarkannya. Fungsi mengembalikan palsu untuk menunjukkan bahawa tiada lagi subrentetan.
2. Analisis terperinci fungsi strtok()
Takrifan lengkap fungsi strtok() ialah:
string strtok ( string $str, string $delimiter )
Antaranya:
strtok() fungsi mengembalikan nilai:
Apabila memanggil fungsi strtok(), PHP akan merentasi rentetan $str dari kiri ke kanan dan memotongnya mengikut pembatas $delimiter. Setiap kali fungsi dipanggil, subrentetan akan dikembalikan, dan penunjuk dalaman secara automatik akan bergerak ke belakang untuk menghala ke permulaan subrentetan seterusnya. Ini bermakna setiap kali fungsi dipanggil, subrentetan baharu akan dikembalikan.
Tetapi perlu diingat bahawa untuk mendapatkan semua pembatas, anda perlu memanggil fungsi strtok() berulang kali sehingga false dikembalikan.
Contoh kod:
$str = "this,is,a,comma,separated,string"; $delimiter = ","; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
Dalam contoh di atas, kami menggunakan fungsi strtok() untuk memisahkan rentetan $str kepada berbilang subrentetan menggunakan koma sebagai pemisah. Keputusan pelaksanaan adalah seperti berikut:
this is a comma separated string
Dalam contoh ini, kami menetapkan pemisah kepada koma. Apabila fungsi strtok() dipanggil buat kali pertama, ia mengembalikan subrentetan pertama "ini" dalam rentetan yang ingin kita pisahkan. Kemudian kami memanggil fungsi strtok() berulang kali, mengembalikan subrentetan baharu setiap kali sehingga false dikembalikan.
3. Nota pada fungsi strtok()
Apabila kita menggunakan fungsi strtok() untuk membelah rentetan, fungsi itu akan mengubah suai rentetan asal. Jika anda perlu menggunakan rentetan asal dalam program seterusnya, anda perlu menyandarkannya terlebih dahulu.
Contoh kod:
$str = "first,second,third"; $delimiter = ","; $original_str = $str; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); } echo $original_str;
Perlu diambil perhatian bahawa parameter $delimiter hanya boleh menjadi satu aksara, jika tidak, ia akan dianggap sebagai setiap aksara menunggu untuk dilalui.
Contoh kod:
$str = "one,two,three"; $delimiter = ",e"; $token = strtok($str, $delimiter); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
Kesan jangkaan kod ini adalah untuk memisahkan rentetan dengan koma dan huruf e, tetapi sebenarnya fungsi itu tidak menggunakan huruf e sebagai pemisah, ia menganggap aksara "e" sebagai tunggu Pemisah, iaitu, dua aksara bersebelahan mestilah pemisah untuk berfungsi secara normal.
Dalam fungsi strtok(), parameter pertama $str menentukan rentetan untuk dipisahkan dan parameter kedua ialah pembatas yang ditentukan. Susunan kedua-dua parameter ini tidak boleh diterbalikkan. Jika susunan kedua-dua parameter ini diterbalikkan, ralat akan dilaporkan.
Contoh kod:
$str = "one,two,three"; $delimiter = ","; // 错误方式 $token = strtok($delimiter, $str); while ($token !== false) { echo "$token<br>"; $token = strtok($delimiter); }
IV. Ringkasan
Dalam pengaturcaraan PHP, terdapat banyak senario di mana operasi rentetan digunakan. Fungsi strtok() ialah fungsi pemisahan rentetan yang sangat mudah yang boleh memisahkan rentetan kepada beberapa subrentetan mengikut pembatas yang ditentukan.
Apabila menggunakan fungsi strtok(), perhatikan jenis nilai pulangan fungsi, sandaran rentetan asal, pembatas hanya boleh menjadi satu aksara dan kesan susunan parameter. Penggunaan fungsi strtok() yang betul boleh membantu kami memproses rentetan dengan lebih cekap.
Atas ialah kandungan terperinci Pisahkan rentetan menggunakan fungsi strtok() dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!