Mencari Rentetan dalam Fail dengan PHP
Dalam pembangunan web, selalunya perlu untuk menyemak sama ada rentetan tertentu terdapat dalam fail. Artikel ini menunjukkan kaedah untuk menyelesaikan tugas ini dalam PHP.
Pernyataan Masalah
Kod PHP berikut cuba untuk mengesahkan sama ada fail mengandungi rentetan yang dihantar ke halaman melalui permintaan GET. Walau bagaimanapun, ia mengembalikan hasil yang salah:
<code class="php"> // ... while (($buffer = fgets($handle)) !== false) { if (strpos($buffer, $id) === false) $valid = TRUE; } // ...</code>
Penyelesaian 1: file_get_contents()
Pendekatan yang lebih cekap ialah menggunakan fungsi file_get_contents(), yang memuatkan keseluruhan fail ke dalam ingatan:
<code class="php"> if( strpos(file_get_contents("./uuids.txt"),$_GET['id']) !== false) { // ... }</code>
Penyelesaian 2: exec()
Untuk fail besar, lebih baik menggunakan exec() untuk mengelakkan masalah memori yang berpotensi:
<code class="php"> if( exec('grep '.escapeshellarg($_GET['id']).' ./uuids.txt')) { // ... }</code>
Atas ialah kandungan terperinci Cara Mencari Rentetan dalam Fail dengan Cekap dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!