Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Memisahkan Rentetan dalam PHP Semasa Memelihara Perkataan yang Dipetik?

Bagaimanakah Saya Boleh Memisahkan Rentetan dalam PHP Semasa Memelihara Perkataan yang Dipetik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-05 09:43:10521semak imbas

How Can I Split a String in PHP While Preserving Quoted Words?

Memelihara Perkataan dalam Petikan Semasa Memisahkan Rentetan dalam PHP

Apabila anda perlu membahagikan rentetan kepada tatasusunan, ia boleh mencabar jika rentetan mengandungi perkataan yang disertakan dalam petikan yang harus kekal utuh. Dalam kes ini, anda ingin meletupkan rentetan berikut:

Lorem ipsum "dolor sit amet" consectetur "adipiscing elit" dolor

Ke dalam tatasusunan ini:

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")

Daripada membelah teks dalam tanda petikan, anda boleh menggunakan preg_match_all( ...) berfungsi untuk mencapai ini:

$text = 'Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor';
preg_match_all('/"(?:\\.|[^\\"])*"|\S+/', $text, $matches);

Ungkapan biasa ini berfungsi sebagai berikut:

  • Ia sepadan dengan sama ada jujukan aksara yang disertakan dalam petikan berganda (petikan yang dilepaskan juga dikendalikan).
  • Atau, ia sepadan dengan mana-mana aksara bukan ruang putih satu kali atau lebih.

Tatasusunan $matches yang terhasil akan mengandungi pembahagian yang dikehendaki perkataan:

Array
(
    [0] => Array
        (
            [0] => Lorem
            [1] => ipsum
            [2] => "dolor sit amet"
            [3] => consectetur
            [4] => "adipiscing \"elit"
            [5] => dolor
        )

)

Dengan menggunakan pendekatan ini, anda boleh meledakkan rentetan dengan berkesan sambil mengekalkan integriti perkataan yang dipetik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memisahkan Rentetan dalam PHP Semasa Memelihara Perkataan yang Dipetik?. 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