2015-05-25 23 views
5

Ho un file che contiene qualcosa di simile:Come leggere un file di testo e cercare una determinata stringa prima dei due punti e quindi mostrare il contenuto dopo i due punti?

test:fOwimWPu0eSaNR8 
test2:vogAqsfXpKzCfGr 

Vorrei essere in grado di cercare il file per dire test e impostare la stringa dopo la : a una variabile in modo che possa essere visualizzato, utilizzato ecc.

Ecco il codice che ho finora per trovare 'test' nel file.

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

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

Come potrei fare?

risposta

3

Questo dovrebbe funzionare per voi:

solo ottenere il file in un array con file() e poi semplicemente preg_grep() tutte le linee, che hanno la stringa di ricerca prima dei due punti.

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

?> 

uscita:

Array ([0] => fOwimWPu0eSaNR8) 
+0

ha funzionato! Grazie :) – jdnoon

+0

@jdnoon Prego – Rizier123

+0

La tua risposta funziona, ma funziona solo per la prima riga del file, non funzionerà per nessuna riga dopo, c'è una ragione per cui? – jdnoon