PHP string manipülasyon

5 Cevap php

Ben formatında bir metin dosyası okuyorum

Phone#(tab)Text(line break) (line break)

Ya da daha özel olarak

4799999999  Hey! You owe us $576.53. Pay up to account no. 9760.00.12345, ID: 201561438.

4798888888  Hey! You owe us $199. Pay up to account no. 9760.05.12345, KID: 201565173.

4797777777  Hey! You owe us... and so on.

Ben bir SQL veritabanında bu depolamak istiyorum, bu yüzden telefon numaraları ve metin bu parçalayın gerekir.

Herhangi bir PHP çiftlere dize bölmek için nasıl bir fikir? Ve SQL için kaydetmeden önce bir Array bu değerleri saklamak gerekir, yoksa sadece doğru onu saklamak gerekir?

5 Cevap

, Satır satır dosyayı okumak sekme araç üzerinde her satırı bölmek ve sonra DB platformu için uygun SQL kullanarak DB koydu.

Hangi bölümü ile sorun yaşıyorsanız?

Her satırda explode function with a tab (\t) ayırıcısını kullanın.

SQL kullanarak veritabanına dizeleri ve ardından giriş onları kırmak için Düzenli ifadeler kullanabilirsiniz.

^([0-9]{10})(.*)

İlk yakalanan grup ve ikinci yakalanan grup olarak kalan metin olarak Telefon Numarası geri getirecek.

Ben durumda metin kısmında sekmeler vardır strpos fonksiyonunu kullanarak daha iyi olacağını düşünüyorum.

$lines = file( $filename );

foreach ( $lines as $line )
{
    $tab = strpos( $line, "\t" );
    $num = substr( $line, 0, $tab );
    $text = substr( $line, $tab );
}

Dosya özellikle büyükse fopen ve fgets (see example) ile file fonksiyonu ve foreach değiştirin.