Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menukarkan Output Rentetan PHP `print_r()` Kembali ke dalam Array?

Bagaimana untuk Menukarkan Output Rentetan PHP `print_r()` Kembali ke dalam Array?

DDD
DDDasal
2024-12-02 19:16:16737semak imbas

How to Convert a PHP `print_r()` String Output Back into an Array?

Cara Menukar Perwakilan Rentetan Tatasusunan Kembali kepada Tatasusunan

Dalam PHP, apabila anda mencetak tatasusunan menggunakan print_r(), ia menukarkannya kepada rentetan yang diformatkan secara visual. Walaupun berguna untuk nyahpepijat, format rentetan ini tidak boleh ditukar terus kepada tatasusunan. Walau bagaimanapun, dengan beberapa logik penghuraian tersuai, adalah mungkin untuk mencipta semula tatasusunan asal.

Fungsi tersuai, text_to_array(), telah dibangunkan untuk menangani penukaran ini. Ia beroperasi dengan:

Menghuraikan Rentetan:

  • Fungsi ini terlebih dahulu menyemak sama ada rentetan yang diberikan bermula dengan "Array", menunjukkan bahawa ia mewakili tatasusunan.
  • Kandungan tatasusunan, yang disertakan dalam kurungan, ialah diekstrak.
  • Pembatas ([, ], dan =>) digantikan dengan aksara pemegang tempat (#!# dan #?#) untuk memudahkan penghuraian.
  • Kandungan tatasusunan yang diubah suai kemudiannya dipecahkan ke dalam medan individu di pembatas #!#.

Mencipta yang Baharu Tatasusunan:

  • Untuk setiap medan, ia menggunakan pembatas #?# untuk memisahkan kunci dan nilai.
  • Jika kunci tidak kosong, ia menambah kunci- pasangan nilai kepada tatasusunan baharu.

Contoh Penggunaan:

Pertimbangkan tatasusunan berikut:

$a = ['foo' => 'fooMe'];

Selepas menukarnya kepada rentetan menggunakan print_r(), anda mendapat:

Array ( [foo] => fooMe )

Melalui ini rentetan ke fungsi text_to_array() akan menghasilkan tatasusunan asal:

$b = text_to_array('Array ( [foo] => fooMe )');
print_r($b);

Ini output:

Array
(
    [foo] => fooMe
)

Dengan melaksanakan logik penghuraian tersuai ini, anda boleh mencipta semula tatasusunan daripada perwakilan rentetan bercetaknya, membolehkan anda memulihkan fungsi tatasusunan walaupun selepas nyahpepijat.

Atas ialah kandungan terperinci Bagaimana untuk Menukarkan Output Rentetan PHP `print_r()` Kembali ke dalam Array?. 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