Rumah pembangunan bahagian belakang tutorial php Menggunakan aliran PHP dengan berkesan

Menggunakan aliran PHP dengan berkesan

Feb 23, 2025 am 11:30 AM

Using PHP Streams Effectively

Tutorial ini membina asas -asas aliran PHP, menunjukkan aplikasi praktikal kuasa mereka. Kami akan membina penapis tersuai, melampirkannya ke sungai, dan mengintegrasikannya ke dalam parser dokumen. Pengetahuan terdahulu aliran PHP adalah disyorkan. Kod sumber lengkap boleh didapati di GitHub.

Konsep Utama:

  • Manipulasi data masa nyata: Penapis aliran PHP membolehkan pengubahsuaian data secara terbang semasa operasi membaca/menulis, menawarkan kawalan aliran data yang fleksibel.
  • Pelaksanaan penapis tersuai:
  • Lanjutkan kelas dan mengatasi kaedah untuk membuat penapis yang disesuaikan dengan keperluan aplikasi anda. php_user_filter filter()
  • lampiran penapis:
  • Gunakan untuk melampirkan penapis ke sungai, secara dinamik mengubah data dalam pemprosesan aliran. stream_filter_append()
  • Chaining Filter:
  • menggabungkan penapis terbina dalam dan tersuai untuk membuat saluran pemprosesan data pelbagai peringkat untuk kejelasan dan penyelenggaraan yang lebih baik.
  • Aplikasi Praktikal:
  • tutorial memuncak dalam parser dokumen yang menggunakan penukaran markdown dan templat untuk mengautomasikan pemformatan kandungan.
Bekerja dengan penapis:

PHP menawarkan pelbagai penapis terbina dalam (mis.,

,

, string.toupper). Sambungan juga boleh memberikan penapis (mis., string.tolower, string.strip_tags dari lanjutan MCRYPT). mcrypt.* menyenaraikan penapis yang tersedia. mdecrypt.* stream_get_filters() Lampirkan penapis menggunakan

:

stream_filter_append()

secara alternatif, gunakan pembungkus meta
$h = fopen('lorem.txt', 'r');
stream_filter_append($h, 'convert.base64-encode');
fpassthru($h);
fclose($h);
Salin selepas log masuk
Salin selepas log masuk
:

php://filter

$filter = 'convert.base64-encode';
$file = 'lorem.txt';
$h = fopen('php://filter/read=' . $filter . '/resource=' . $file,'r');
fpassthru($h);
fclose($h);
Salin selepas log masuk
Salin selepas log masuk
output data yang ditapis.

fpassthru()

Penapisan baca-masa: Penapis markdown

Penapis tersuai ini menukar markdown ke HTML. Ia meluas

, mengatasi kaedah

. php_user_filter menerima: filter() filter()

    : Bucket (s) data input.
  • $in
  • : baldi (s) untuk output.
  • $out
  • : bait yang digunakan (diluluskan dengan rujukan).
  • $consumed
  • : Menunjukkan penutupan aliran.
  • $closing
  • pilihan
dan

mengurus sumber. Contoh ini menggunakan parser markdown Michel Fortin: onCreate() onClose()

Penapis mengumpul data, mencipta baldi baru, menggunakan MarkDownExtra untuk menukar, menambahkan hasilnya kepada
<?php namespace MarkdownFilter;

use \Michelf\MarkdownExtra as MarkdownExtra;

class MarkdownFilter extends \php_user_filter {
    // ... (Implementation as in original text) ...
}
Salin selepas log masuk
, dan mengembalikan

. Pendaftaran dan Penggunaan: $out PSFS_PASS_ON

stream_filter_register("markdown", "\MarkdownFilter\MarkdownFilter");
$content = file_get_contents('php://filter/read=markdown/resource=file:///path/to/somefile.md');
// ... error handling ...
echo $content;
Salin selepas log masuk
penapisan masa tulis: penapis template

Penapis ini membenamkan kandungan HTML dalam templat (menggunakan RaintPL dalam contoh ini). Ia didaftarkan sebagai template.*, membolehkan parameter melalui kad liar.

$h = fopen('lorem.txt', 'r');
stream_filter_append($h, 'convert.base64-encode');
fpassthru($h);
fclose($h);
Salin selepas log masuk
Salin selepas log masuk

kelas TemplateFilter (pelaksanaan serupa dengan asal, menggunakan Raintpl):

$filter = 'convert.base64-encode';
$file = 'lorem.txt';
$h = fopen('php://filter/read=' . $filter . '/resource=' . $file,'r');
fpassthru($h);
fclose($h);
Salin selepas log masuk
Salin selepas log masuk

Kaedah onCreate() menguraikan tajuk dari nama penapis. Kaedah filter() memproses data, menggunakan templat, dan menulis hasilnya.

Aplikasi Parser Dokumen (MDDOC)

Aplikasi mddoc menggunakan penapis untuk menukar fail markdown secara rekursif dalam direktori sumber ke fail HTML dalam direktori destinasi, mengekalkan struktur direktori. Ia menggunakan komposer untuk pengurusan ketergantungan (Michelf/php-markdown dan hujan/raintpl). Skrip mddoc (pelaksanaan seperti dalam teks asal) mengendalikan argumen baris arahan, mendaftarkan penapis, melangkah melalui direktori, dan menggunakan penapis untuk fail markdown.

Soalan -soalan yang sering ditanya (FAQ): (bahagian Soalan Lazim tetap tidak berubah, kerana ia memberikan konteks dan maklumat yang berharga mengenai aliran PHP yang tidak diubah oleh pengertian.)

Respons yang disemak ini mengekalkan makna kandungan asal semasa menggunakan struktur kata -kata dan struktur yang berlainan untuk mencapai paraphrasing. URL imej dipelihara.

Atas ialah kandungan terperinci Menggunakan aliran PHP dengan berkesan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Bagaimanakah sesi merampas kerja dan bagaimana anda dapat mengurangkannya dalam PHP? Apr 06, 2025 am 12:02 AM

Sesi rampasan boleh dicapai melalui langkah -langkah berikut: 1. Dapatkan ID Sesi, 2. Gunakan ID Sesi, 3. Simpan sesi aktif. Kaedah untuk mengelakkan rampasan sesi dalam PHP termasuk: 1. Gunakan fungsi Sesi_Regenerate_ID () untuk menjana semula ID Sesi, 2. Data sesi stor melalui pangkalan data, 3.

Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Huraikan prinsip -prinsip yang kukuh dan bagaimana ia memohon kepada pembangunan PHP. Apr 03, 2025 am 12:04 AM

Penerapan prinsip pepejal dalam pembangunan PHP termasuk: 1. Prinsip Tanggungjawab Tunggal (SRP): Setiap kelas bertanggungjawab untuk hanya satu fungsi. 2. Prinsip Terbuka dan Tutup (OCP): Perubahan dicapai melalui lanjutan dan bukannya pengubahsuaian. 3. Prinsip Penggantian Lisch (LSP): Subkelas boleh menggantikan kelas asas tanpa menjejaskan ketepatan program. 4. Prinsip Pengasingan Antara Muka (ISP): Gunakan antara muka halus untuk mengelakkan kebergantungan dan kaedah yang tidak digunakan. 5. Prinsip Inversi Ketergantungan (DIP): Modul peringkat tinggi dan rendah bergantung kepada abstraksi dan dilaksanakan melalui suntikan ketergantungan.

Bagaimana cara debug mod CLI dalam phpstorm? Bagaimana cara debug mod CLI dalam phpstorm? Apr 01, 2025 pm 02:57 PM

Bagaimana cara debug mod CLI dalam phpstorm? Semasa membangun dengan PHPStorm, kadang -kadang kita perlu debug PHP dalam mod Interface Line Command (CLI) ...

Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan. Ciri -ciri Keselamatan Rangka Kerja: Melindungi Kelemahan. Mar 28, 2025 pm 05:11 PM

Artikel membincangkan ciri -ciri keselamatan penting dalam rangka kerja untuk melindungi daripada kelemahan, termasuk pengesahan input, pengesahan, dan kemas kini tetap.

Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Bagaimana cara menetapkan kebenaran secara automatik UnixSocket selepas sistem dimulakan semula? Mar 31, 2025 pm 11:54 PM

Bagaimana untuk menetapkan keizinan UnixSocket secara automatik selepas sistem dimulakan semula. Setiap kali sistem dimulakan semula, kita perlu melaksanakan perintah berikut untuk mengubahsuai keizinan UnixSocket: sudo ...

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

See all articles