Rumah >pembangunan bahagian belakang >tutorial php >Pisahkan rentetan menggunakan fungsi strtok() dalam PHP

Pisahkan rentetan menggunakan fungsi strtok() dalam PHP

王林
王林asal
2023-06-27 08:47:041185semak imbas

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:

  • $str: rentetan yang akan dibelah.
  • $pembatas: Pembatas yang ditentukan.

strtok() fungsi mengembalikan nilai:

  • Apabila dipanggil buat kali pertama, kembalikan subrentetan bukan pembatas pertama dalam $str.
  • Pada panggilan berikutnya, kembalikan subrentetan tidak terhad yang tinggal.
  • Mengembalikan palsu jika tiada lagi subrentetan tidak terhad.

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()

  1. Sandarkan rentetan asal

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;
  1. Pembatas hanya boleh menjadi satu aksara

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.

  1. Impak susunan parameter

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!

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