PHP pada masa ini merupakan salah satu bahasa pembangunan web yang paling banyak digunakan semasa proses pembangunan PHP, masalah biasa ialah cara memindahkan data antara fail yang dinamakan adalah penyelesaian. Artikel ini akan memperkenalkan paip bernama dalam PHP dan cara menggunakannya untuk komunikasi antara proses.
1. Apakah itu paip bernama
Dalam sistem pengendalian Unix dan Linux, paip ialah kaedah biasa komunikasi antara proses. Ia membenarkan satu proses untuk menulis data manakala proses lain boleh membaca data Kaedah ini mengelakkan hampir semua masalah penyegerakan atau pengecualian bersama. Paip yang dinamakan adalah serupa, satu-satunya perbezaan ialah ia berkomunikasi melalui sistem fail dan bukannya menghubungkan proses antara satu sama lain. Dalam erti kata lain, paip bernama ialah varian paip tidak bernama yang wujud dalam sistem fail dan mempunyai nama unik yang boleh diakses oleh proses yang berbeza tanpa menyekat.
2. Cara membuat paip bernama
Dalam PHP, membuat paip bernama sangat mudah, hanya gunakan fungsi mkfifo Parameter fungsi ini ialah laluan dan kebenaran, dan ia akan mengembalikan nilai Boolean sebagai hasilnya Selain itu, proses mencipta paip bernama mesti mempunyai kebenaran boleh ditulis pada fail ini, jika tidak, ia akan gagal. Berikut ialah contoh:
$pipe_name = '/tmp/my_pipe'; if (!file_exists($pipe_name)) { if (posix_mkfifo($pipe_name, 0666)) { echo '命名管道创建成功'; } else { echo '命名管道创建失败'; } }
Dalam contoh di atas, kami mula-mula menentukan laluan paip yang dinamakan, dan kemudian menentukan sama ada fail itu perlu dibuat dengan menentukan sama ada fail itu wujud. Kemudian gunakan fungsi posix_mkfifo untuk mencipta fail, nyatakan kebenaran akses fail melalui parameter 0666, dan akhirnya menilai nilai pulangan untuk menentukan sama ada fail itu berjaya dibuat.
3. Cara menggunakan paip bernama
Apabila menggunakan paip bernama, kita perlu menggunakan fungsi fopen untuk membukanya, yang akan mengembalikan penunjuk fail yang boleh digunakan untuk membaca dan menulis operasi. Sudah tentu, sebelum ini, kita perlu mengesahkan bahawa paip yang dinamakan adalah pilihan yang betul antara proses berbeza yang mengandungi penulis data dan pembaca data, dan juga menentukan kaedah membaca dan menulis paip bernama.
Dalam PHP, menulis data ke paip bernama adalah sangat mudah, hanya gunakan fungsi fopen untuk membuka fail paip, dan kemudian gunakan fungsi fwrite untuk menulis Hanya masukkan rentetan Berikut ialah contoh:
$pipe_name = '/tmp/my_pipe'; $pipe_access_mode = 'w'; $pipe = fopen($pipe_name, $pipe_access_mode); if ($pipe) { fwrite($pipe, 'hello, world!'); fclose($pipe); }
Dalam contoh ini, kami mula-mula menentukan laluan paip yang dinamakan Atas dasar ini, kami menggunakan fungsi fopen untuk membuka fail paip, dan kemudian gunakan fungsi fwrite untuk menulis Masukkan rentetan dan, selepas menulis selesai, tutup penuding fail.
Apabila kita perlu membaca data daripada paip bernama, kita juga menggunakan fungsi fopen untuk membuka fail paip, dan kemudian menggunakan fungsi fread untuk baca data, seperti berikut adalah contoh:
$pipe_name = '/tmp/my_pipe'; $pipe_access_mode = 'r'; $pipe = fopen($pipe_name, $pipe_access_mode); if ($pipe) { $data = fread($pipe, 1024); echo $data; fclose($pipe); }
Dalam contoh ini, kami juga menggunakan fungsi fopen untuk membuka fail paip, kemudian gunakan fungsi fread untuk membaca data daripada paip, dan akhirnya mencetak data ke skrin.
4. Kelebihan dan Kelemahan Paip Dinamakan
Kelebihan paip dinamakan ialah ia merupakan kaedah komunikasi antara proses yang sangat mudah yang tidak memerlukan penyegerakan berlebihan atau mekanisme pengecualian bersama dan boleh berkesan Elakkan kebuntuan, kelaparan dan masalah lain. Selain itu, ia juga boleh menyokong pelbagai proses untuk membaca dan menulis paip yang sama pada masa yang sama, sekali gus meningkatkan kecekapan penghantaran data.
Walau bagaimanapun, paip yang dinamakan juga mempunyai beberapa kelemahan, yang paling jelas ialah ia hanya boleh menyokong komunikasi separuh dupleks, iaitu, proses mesti menunggu penghantaran data pihak lain selesai sebelum mula menghantar datanya sendiri. Selain itu, ia mempunyai isu keselamatan tertentu, dan jika amalan membaca dan menulis tidak dilakukan dengan betul, ia mungkin membawa kepada masalah seperti kehilangan data atau kerosakan fail.
5. Kesimpulan
Secara amnya, paip yang dinamakan ialah kaedah komunikasi antara proses yang sangat praktikal yang boleh dengan mudah melaksanakan sejumlah besar tugas pembangunan PHP. Apabila menggunakan paip bernama, kita perlu berhati-hati untuk memastikan komunikasi antara proses yang berbeza adalah stabil, selamat dan boleh dipercayai. Saya harap artikel ini dapat memberikan sedikit bantuan berguna kepada pembaca yang baru mengenali PHP.
Atas ialah kandungan terperinci Bermula dengan PHP: Named Pipes. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!