lostyazilim
tr.link

[çözüldü]php ile txt içindeki veri formatını değiştirme

9 Mesajlar 1.186 Okunma
acebozum
tr.link

atanik atanik WM Aracı Kullanıcı
  • Üyelik 26.11.2010
  • Yaş/Cinsiyet 42 /
  • Meslek bilgisayar mühendisi
  • Konum
  • Ad Soyad A** T**
  • Mesajlar 79
  • Beğeniler 40 / 6
  • Ticaret 0, (%0)
Merhaba, bir txt dosyam mevcut.Bu txt dosyasını borsa programından çıktı olarak alabiliyorum. tarih formatı 201903011530 şeklinde yazılı Bunun 2019-03-01 15:30 olarak düzeltmek istiyorum. Bunu nasıl yapabilirim ? fikir verir misiniz?


txt içeriğinden örnek:

IMKBH'OTKAR,201903011530,106.56,106.56,106.47,106.47,3,355,B
IMKBH'OTKAR,201903011535,106.38,106.38,106.20,106.38,141,14991,B
IMKBH'OTKAR,201903011540,106.56,106.65,106.56,106.56,398,42422,B
 

 

wmaraci
reklam

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Eğer exlode ile veriyi ayırabiliyorsanız tarih verisi için de şu fonksiyonu yazdım

function tarih_duzenle($tarih)
{
$yil = substr($tarih,0,4);
$ay = substr($tarih,4,2);
$gun = substr($tarih,6,2);
$saat = substr($tarih,8,2);
$dakika = substr($tarih,10,2);
return $yil.'-'.$ay.'-'.$gun.' '.$saat.':'.$dakika;
}

echo tarih_duzenle(201903011530);
atanik

kişi bu mesajı beğendi.


atanik atanik WM Aracı Kullanıcı
  • Üyelik 26.11.2010
  • Yaş/Cinsiyet 42 /
  • Meslek bilgisayar mühendisi
  • Konum
  • Ad Soyad A** T**
  • Mesajlar 79
  • Beğeniler 40 / 6
  • Ticaret 0, (%0)

Abdullahx adlı üyeden alıntı

Eğer exlode ile veriyi ayırabiliyorsanız tarih verisi için de şu fonksiyonu yazdım

function tarih_duzenle($tarih)
{
$yil = substr($tarih,0,4);
$ay = substr($tarih,4,2);
$gun = substr($tarih,6,2);
$saat = substr($tarih,8,2);
$dakika = substr($tarih,10,2);
return $yil.'-'.$ay.'-'.$gun.' '.$saat.':'.$dakika;
}

echo tarih_duzenle(201903011530);


Teşekkür ederim destek için.
preg_match ile bende tarih kısmını ayırmaya çalışıyordum.

IMKBH'OTKAR,201903011530,106.56,106.56,106.47,106.47,3,355,B satırı için otkar, ile diğer , arasındakini ayırmaya çalışıyorum.
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
değerleri anlamlandıramadım ama mantık olarak bakarsak veriler virgül ile ayrılmış gibi duruyor. virgül ile ayrılınca hepsi anlam kazanıyorsa preg_match a gerek yok, direkt explode yapın
atanik

kişi bu mesajı beğendi.


wmaraci
wmaraci

atanik atanik WM Aracı Kullanıcı
  • Üyelik 26.11.2010
  • Yaş/Cinsiyet 42 /
  • Meslek bilgisayar mühendisi
  • Konum
  • Ad Soyad A** T**
  • Mesajlar 79
  • Beğeniler 40 / 6
  • Ticaret 0, (%0)

Abdullahx adlı üyeden alıntı

değerleri anlamlandıramadım ama mantık olarak bakarsak veriler virgül ile ayrılmış gibi duruyor. virgül ile ayrılınca hepsi anlam kazanıyorsa preg_match a gerek yok, direkt explode yapın


Evet veriler virgül ile ayrılmış. her birisi farklı anlamda veri. Explode deneyeyim.uzun zaman oldu kod yazmayalı. biraz zaman alıyor.
 

 

atanik atanik WM Aracı Kullanıcı
  • Üyelik 26.11.2010
  • Yaş/Cinsiyet 42 /
  • Meslek bilgisayar mühendisi
  • Konum
  • Ad Soyad A** T**
  • Mesajlar 79
  • Beğeniler 40 / 6
  • Ticaret 0, (%0)

Abdullahx adlı üyeden alıntı

değerleri anlamlandıramadım ama mantık olarak bakarsak veriler virgül ile ayrılmış gibi duruyor. virgül ile ayrılınca hepsi anlam kazanıyorsa preg_match a gerek yok, direkt explode yapın


Evet veriler virgül ile ayrılmış. her birisi farklı anlamda veri. Explode deneyeyim.uzun zaman oldu kod yazmayalı. biraz zaman alıyor.
Destek için tekrar teşekkür ederim.
Abdullahx

kişi bu mesajı beğendi.

atanik atanik WM Aracı Kullanıcı
  • Üyelik 26.11.2010
  • Yaş/Cinsiyet 42 /
  • Meslek bilgisayar mühendisi
  • Konum
  • Ad Soyad A** T**
  • Mesajlar 79
  • Beğeniler 40 / 6
  • Ticaret 0, (%0)
$kelimeler= explode(",",$satir);
//echo $kelimeler[0]; //IMKBH'OTKAR ihtiyacımız yok
echo $kelimeler[1];

ile sadece tarihleri yazdırdım.
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
Hocam direkt bu kodları kullanın hızlıca halledin :)

define("dosya_adi",'x.txt'); //txt dosyanızın adı
define("yeni_dosya_adi", 'new.txt'); //Yeniden yazılacak dosya adı

function tarih_duzenle($tarih)
{
$yil = substr($tarih,0,4);
$ay = substr($tarih,4,2);
$gun = substr($tarih,6,2);
$saat = substr($tarih,8,2);
$dakika = substr($tarih,10,2);
return $yil.'-'.$ay.'-'.$gun.' '.$saat.':'.$dakika;
}

function re($veri)
{
$explode = explode(',', $veri);
$explode[1] = tarih_duzenle($explode[1]);
$implode = implode(',', $explode);
if (!file_exists(__DIR__.DIRECTORY_SEPARATOR.yeni_dosya_adi)) {
$file = fopen(__DIR__.DIRECTORY_SEPARATOR.yeni_dosya_adi,'w');
fclose($file);
}
$file = fopen(__DIR__.DIRECTORY_SEPARATOR.yeni_dosya_adi, 'a');
fwrite($file, $implode);
fclose($file);
}

$read = new SplFileObject(__DIR__.DIRECTORY_SEPARATOR.dosya_adi);

while (!$read->eof()) {
re($read->fgets());
}

atanik

kişi bu mesajı beğendi.


atanik atanik WM Aracı Kullanıcı
  • Üyelik 26.11.2010
  • Yaş/Cinsiyet 42 /
  • Meslek bilgisayar mühendisi
  • Konum
  • Ad Soyad A** T**
  • Mesajlar 79
  • Beğeniler 40 / 6
  • Ticaret 0, (%0)
çok teşekkür ederim desteğiniz için. çok faydalı oldu
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al