Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk melompat ke pengawal lain menggunakan PHP

Bagaimana untuk melompat ke pengawal lain menggunakan PHP

PHPz
Lepaskan: 2023-04-03 14:06:02
asal
656 orang telah melayarinya

Kini, semakin banyak tapak web mula menggunakan seni bina MVC dalam pembangunan, dan tujuan MVC adalah untuk memisahkan bahagian logik aplikasi daripada bahagian antara muka. Pembangun meletakkan logik dan model perniagaan dalam lapisan model, memaparkan logik dalam lapisan paparan, dan lapisan kawalan melaksanakan interaksi antara dua lapisan ini. Dalam banyak bahasa pengaturcaraan, pengawal memainkan peranan penting semasa mereka mengendalikan permintaan HTTP dan menghantar data ke templat untuk diberikan oleh penyemak imbas. Dalam artikel ini, kita akan belajar bagaimana untuk melompat ke pengawal lain menggunakan PHP.

Pertama, kita perlu melaksanakan lompatan melalui fungsi header() dalam PHP. Fungsi ini menghantar maklumat pengepala HTTP kepada klien dan boleh menyediakan ubah hala. Sebagai contoh, kita boleh mengubah hala pengguna ke pengawal menggunakan kod berikut:

header('Location: /controller/action');
Salin selepas log masuk

di mana /controller/action ialah URL pengawal dan tindakan untuk melompat ke. Sila ambil perhatian bahawa tiada apa yang boleh dikeluarkan kepada penyemak imbas sebelum fungsi header() dilaksanakan, yang bermaksud tiada apa yang boleh dikeluarkan dalam skrip yang sama selepas fungsi header() dilaksanakan.

Walau bagaimanapun, dalam banyak kes, kami mungkin perlu melaksanakan beberapa kod sebelum melompat, contohnya, untuk merekodkan aktiviti pengguna atau menyimpan data dalam borang. Untuk melaksanakan kod ini sebelum melaksanakan lompatan, kita boleh menggunakan ciri Penimbalan Output dalam PHP. Ini boleh dilakukan dengan membuka penimbal melalui fungsi ob_start() dan menggunakan fungsi ob_get_clean() untuk mendapatkan kandungan penimbal dan mengosongkan penimbal. Sebagai contoh, kod berikut menyimpan semua output dalam penimbal dan kemudian melakukan beberapa operasi sebelum melompat:

ob_start();

// Put your code here

header('Location: /controller/action');

ob_get_clean();
Salin selepas log masuk

Dalam sesetengah kes, kita mungkin perlu menghantar beberapa parameter kepada pengawal lain. Ini boleh dicapai dengan menambahkan parameter rentetan pertanyaan pada URL. Sebagai contoh, kod berikut menghantar parameter bernama "id" kepada pengawal:

header('Location: /controller/action?id=' . $id);
Salin selepas log masuk

Selepas lompatan, kita boleh menggunakan tatasusunan $_GET untuk mendapatkan nilai parameter ini:

$id = $_GET['id'];
Salin selepas log masuk

Selain parameter rentetan pertanyaan, kami juga boleh menggunakan permintaan POST untuk menghantar data kepada pengawal lain. Kod berikut menghantar beberapa data kepada pengawal melalui permintaan POST:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '/controller/action');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_exec($ch);
Salin selepas log masuk

di mana $data ialah tatasusunan data yang akan dihantar. Dalam pengawal sasaran, kita boleh menggunakan tatasusunan $_POST untuk mendapatkan nilai data ini:

$data = $_POST;
Salin selepas log masuk

Ringkasnya, pengawal adalah bahagian penting MVC kerana mereka bertanggungjawab untuk menerima permintaan HTTP dan meletakkannya Data dihantar ke templat. Dalam PHP, kita boleh menggunakan fungsi header() untuk melompat ke pengawal lain dan menghantar data melalui parameter rentetan pertanyaan dan permintaan POST. Selain itu, kita perlu menggunakan penimbal keluaran apabila melaksanakan sebarang kod yang diperlukan sebelum melompat.

Atas ialah kandungan terperinci Bagaimana untuk melompat ke pengawal lain menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan