2015-05-25 14 views
5

Böyle bir şey içeren bir dosya vardır:Metin dosyası nasıl okunur ve kolondan önce belirli bir dizeyi arar ve sonra da içeriği kolondan sonra gösterir?

test:fOwimWPu0eSaNR8 
test2:vogAqsfXpKzCfGr 

Ben test diyelim için dosya arama yapabilmek istiyorum ve buna görüntülenebilir böylece, kullanılan bir değişkene : sonra dize ayarlamak vb.

Dosyada 'test' bulmak için şu ana kadar kullandığım kod.

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

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

Bunu yapmak için nasıl giderim?

cevap

3

Bu sizin için çalışması gerekir:

Tam o kolonun önce arama dizesini sahip basitçe preg_grep() tüm satırları, file() ile bir diziye dosyanızı almak ve.

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

?> 

çıkışı:

Array ([0] => fOwimWPu0eSaNR8) 
+0

İşe yaradı! Thank you :) – jdnoon

+0

(@jdnoon) Hoşgeldin – Rizier123

+0

Cevabınız işe yarıyor, ancak sadece dosyadaki ilk satır için çalışıyor, sonra herhangi bir satır için çalışmayacak, neden diye bir neden var mı? – jdnoon

İlgili konular