2016-03-29 17 views
-1

Metin Dosyası işlemek için? hattın "9954" değeri nasıl aşağıda gibi görünen bir metin dosyası var PHP

  • Son 13 karakterden başlar

    • 29 karakter

    metin dosyasını görüntülemek için Kodum:

    <?php 
    header('Content-Type: text/html; charset=UTF-8'); 
    echo "<pre>".file_get_contents("MAGFLE_Greenbnk_Caraga.txt")."</pre>"; 
    ?> 
    

    Yardımın çok olacak çok takdir
    Teşekkür ederiz

  • +0

    Bu sütunlar nasıl ayrılıyor? Sekmelerle mi? – Rizier123

    +1

    Dosyayı bir dizi satır halinde okumak için 'file()' işlevini kullanın. Düzenli bir ifade kullanarak istediğiniz parçaları ayıklayarak diziden geçerek. – Barmar

    +0

    Veya dosyadan bir kerede bir satırı okumak için 'while ($ line = fgets ($ fp))' döngüsü kullanın ve sonra aynı şeyi yapın. – Barmar

    cevap

    0

    tüm maçlarda bir çok satırlı düzenli ifade ve döngü kullanın:

    $source = file_get_contents("MAGFLE_Greenbnk_Caraga.txt"); 
    $matches = []; 
    
    preg_match_all("/(9954[0-9]{25}).*(.{13}$)/um", $source, $matches); 
    
    for($i = 0; $i < count($matches[1]); ++$i) { 
        echo "Line {$i} -- "; 
        echo "chars that start with '9954': {$matches[1][$i]} --- "; 
        echo "last 13 chars: {$matches[2][$i]} <br>"; 
    } 
    

    düzenli ifade iki yakalama gruplarını içerir. İlk grup, '6654' ile başlayan 29 karakterle eşleşir. İkincisi son 13 karakterle eşleşiyor.

    • ilk dizi içeren tüm eşleşen hatlar
    • ikinci dizi birinci yakalama gruptan tüm maçları içeren
    • üçüncü dizi ikinci gelen tüm maçları içerir:

      stoktaki dizi 3 dizileri içerir

      : verilerinizi uygularken yakalama grubu

    aşağıdaki çıktıyı almak

    result

    Verilerinize bağlı olarak, bu her durumda çalışmayacaktır. Belki de normal ifadeyi daha fazla kuralla geliştirmelisin.

    İlgili konular