2015-05-25 27 views
5

Mam plik, który zawiera coś takiego:Jak odczytać plik tekstowy i wyszukać konkretny ciąg przed dwukropkiem, a następnie wyświetlić zawartość po dwukropku?

test:fOwimWPu0eSaNR8 
test2:vogAqsfXpKzCfGr 

chciałbym być w stanie wyszukać plik za powiedzmy test i ustawić ciąg po : do zmiennej tak może być wyświetlany, używane itd.

Oto kod, który dotychczas znalazłem w celu znalezienia "testu" w pliku.

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

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

Jak miałbym to zrobić?

Odpowiedz

3

ten powinien pracować dla Ciebie:

Po prostu plik do tablicy z file() a następnie po prostu preg_grep() wszystkie linie, które mają wyszukiwany ciąg przed dwukropkiem.

<?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); 

?> 

wyjściowa:

Array ([0] => fOwimWPu0eSaNR8) 
+0

Udało się! Dziękuję :) – jdnoon

+0

@jdnoon Nie ma za co – Rizier123

+0

Twoja odpowiedź działa, ale działa tylko dla pierwszego wiersza w pliku, nie będzie działać dla żadnej linii po, czy jest powód, dlaczego? – jdnoon