Cara Mencari Rentetan dalam Fail dengan Cekap dengan PHP

Susan Sarandon
Lepaskan: 2024-10-23 16:36:02
asal
457 orang telah melayarinya

How to Efficiently Search for Strings in Files with PHP

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber: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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!