Laravel ialah rangka kerja PHP popular yang menyediakan banyak ciri berkuasa, seperti penghalaan, ORM, pengesahan borang dan banyak lagi. Dalam aplikasi praktikal, banyak laman web perlu menapis perkataan sensitif pada input kandungan oleh pengguna untuk memastikan kesopanan dan kesihatan laman web. Artikel ini akan memperkenalkan cara menggunakan Laravel untuk melaksanakan fungsi penapisan perkataan sensitif.
1. Prinsip penapisan perkataan sensitif
Penapisan perkataan sensitif merujuk kepada pengesanan perkataan sensitif dalam kandungan teks dan menggantikan atau menandanya untuk mencapai tujuan menyekat perkataan sensitif. Terdapat banyak cara untuk melaksanakan penapisan perkataan sensitif, yang paling biasa digunakan ialah menggunakan ungkapan biasa untuk memadankan perkataan sensitif. Ungkapan biasa ialah alat pemadanan teks yang berkuasa yang boleh digunakan untuk memadankan sejumlah besar teks hanya dengan menentukan corak yang akan dipadankan.
2. Melaksanakan penapisan perkataan sensitif dalam Laravel
Dalam Laravel, perisian tengah boleh digunakan untuk melaksanakan penapisan perkataan sensitif. Middleware ialah konsep dalam rangka kerja Laravel yang boleh melakukan beberapa operasi logik sebelum atau selepas laluan atau pengawal. Berikut ialah langkah khusus untuk melaksanakan penapisan perkataan sensitif:
Pertama, anda perlu mencipta perisian tengah untuk menapis perkataan sensitif Anda boleh menggunakan yang berikut arahan untuk menciptanya:
php artisan make:middleware SensitiveWordsFilter
Arahan ini akan mencipta fail middleware bernama SensitiveWordsFilter dalam direktori app/Http/Middleware. Dalam fail ini, anda perlu menentukan kaedah pemegang untuk memproses permintaan dan respons. Berikut ialah kod sampel:
<?php namespace App\Http\Middleware; use Closure; class SensitiveWordsFilter { public function handle($request, Closure $next) { //敏感词过滤代码 //... return $next($request); } }
Dalam kaedah pemegang, anda perlu menulis kod untuk penapisan perkataan sensitif. Secara khusus, anda boleh menggunakan fungsi ungkapan biasa PHP preg_replace untuk menggantikan perkataan sensitif. Berikut ialah contoh kod:
$content = $request->input('content'); $words = ['敏感词1', '敏感词2', '敏感词3']; $pattern = '/('.implode('|', $words).')/i'; $content = preg_replace($pattern, "***", $content); $request->merge(['content' => $content]);
Dalam kod di atas, $content ialah kandungan yang dimasukkan oleh pengguna, $words ialah susunan perkataan sensitif yang perlu diganti, $pattern ialah biasa corak ungkapan, dan fungsi implode digunakan untuk menukar perkataan sensitif kepada Tatasusunan ditukar kepada keadaan "atau" dalam ungkapan biasa. Akhir sekali, gunakan fungsi preg_replace untuk menggantikan perkataan sensitif yang sepadan dengan asterisk. Perlu diingat bahawa untuk mengelakkan kesan penapisan perkataan sensitif pada fungsi lain, kaedah $request->merge perlu digunakan untuk mengemas kini kandungan yang diganti kembali kepada permintaan.
Akhir sekali, SensitiveWordsFilter middleware perlu didaftarkan dalam laluan atau pengawal supaya ia boleh digunakan di mana penapisan perkataan sensitif diperlukan. Anda boleh menambah rekod dalam tatasusunan $routeMiddleware, seperti berikut:
protected $routeMiddleware = [ //其它中间件 'sensitive' => \App\Http\Middleware\SensitiveWordsFilter::class, ];
Dalam laluan atau pengawal, anda boleh menggunakan kaedah middleware untuk mendaftarkan middleware SensitiveWordsFilter ke laluan atau kaedah yang ditentukan, seperti berikut:
Route::get('/article', 'ArticleController@show')->middleware('sensitive');
Dengan cara ini, apabila mengakses laluan /article, perisian tengah SensitiveWordsFilter akan dipanggil secara automatik untuk menapis perkataan sensitif.
3. Ringkasan
Penapisan perkataan sensitif adalah cara penting untuk memastikan kesihatan tapak web. Menggunakan fungsi middleware yang disediakan oleh rangka kerja Laravel, anda boleh melaksanakan penapisan perkataan sensitif dengan mudah. Dalam aplikasi praktikal, pelarasan perlu dibuat berdasarkan situasi sebenar tapak web, seperti mengemas kini senarai kosa kata sensitif, mengehadkan bilangan penggantian, merekodkan maklumat penapisan, dsb.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penapisan perkataan sensitif dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!