2015-05-25 16 views
5

Tôi có một tập tin có chứa một cái gì đó như thế này:Cách đọc một tệp văn bản và tìm kiếm một chuỗi nhất định trước dấu hai chấm và sau đó hiển thị nội dung sau dấu hai chấm?

test:fOwimWPu0eSaNR8 
test2:vogAqsfXpKzCfGr 

Tôi muốn để có thể tìm kiếm các tập tin cho tiếng nói test và nó thiết lập các chuỗi sau khi : cho một biến để nó có thể được hiển thị, sử dụng v.v.

Đây là mã tôi có cho đến nay để tìm 'thử nghiệm' trong tệp.

$file = 'file.txt'; 
$string = 'test'; 

$searchFile = file_get_contents($file); 
if (preg_match('/\\b'.$string.'\\b/', $searchFile)) { 
    echo 'true'; 
    // Find String 
} else { 
    echo 'false'; 
} 

Tôi làm cách nào để thực hiện việc này?

Trả lời

3

này nên làm việc cho bạn:

Chỉ cần có được file của bạn thành một mảng với file() và sau đó chỉ cần preg_grep() tất cả các dòng, trong đó có chuỗi tìm kiếm trước dấu hai chấm.

<?php 

    $file = "file.txt"; 
    $search = "test"; 

    $lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

    $matches = preg_grep("/^" . preg_quote($search, "/") . ":(.*?)$/", $lines); 
    $matches = array_map(function($v){ 
     return explode(":", $v)[1]; 
    }, $matches); 

    print_r($matches); 

?> 

đầu ra:

Array ([0] => fOwimWPu0eSaNR8) 
+0

Nó làm việc! Cảm ơn bạn :) – jdnoon

+0

@jdnoon Bạn đang chào mừng – Rizier123

+0

Phản hồi của bạn hoạt động, nhưng nó chỉ hoạt động cho dòng đầu tiên trong tệp, nó sẽ không hoạt động đối với bất kỳ dòng nào sau đó, có lý do nào để giải thích tại sao không? – jdnoon

Các vấn đề liên quan