2015-05-25 3 views
5

Ich habe eine Datei, die so etwas wie dies enthält:Wie lese ich eine Textdatei und suche nach einer bestimmten Zeichenfolge vor einem Doppelpunkt und zeige dann den Inhalt nach dem Doppelpunkt?

test:fOwimWPu0eSaNR8 
test2:vogAqsfXpKzCfGr 

Ich möchte in der Lage sein, die Datei zu suchen sagen test und setzen Sie die Zeichenfolge nach dem : auf eine Variable, damit es angezeigt werden kann, verwendet usw.

Hier ist der Code, den ich bisher für das Finden von "Test" in der Datei habe.

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

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

Wie würde ich das machen?

Antwort

3

Dies sollte für Sie arbeiten:

Sie Ihre Datei mit file() in ein Array und dann einfach preg_grep() alle Linien, die die Suchkette vor dem Doppelpunkt haben.

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

?> 

Ausgang:

Array ([0] => fOwimWPu0eSaNR8) 
+0

Es hat funktioniert! Danke :) – jdnoon

+0

@jdnoon Gern geschehen – Rizier123

+0

Ihre Antwort funktioniert, aber es funktioniert nur für die erste Zeile in der Datei, es funktioniert nicht für alle Zeilen nach, gibt es einen Grund, warum? – jdnoon