Doğru Cevap
-
Yukardaki gibi ise çok zor olmasa gerek. Öncelikle file() fonksiyonu ile her bir satırı rahatlıkla array içine alabilirsiniz. Sonra foreach dongusunu arrayınızı sokup regular expression ile ilgili biligileri edinebilirsiniz.
$srt_file = file('deneme.srt',FILE_IGNORE_NEW_LINES); $regex = "/^(\d)+ ([\d]+:[\d]+:[\d]+,[\d]+) --> ([\d]+:[\d]+:[\d]+,[\d]+) (\w.+)/"; foreach($srt_file as $srt){ preg_match($regex,$srt,$srt_lines); print_r($srt_lines); echo '<br />'; }
-
remy1
hocam ekrana yüzlerce Array ( ) yazdı sadece?11 yıl önce yazılmış -
Kesali
Verdiğiniz örnek iki satırı srt uzantılı bir dosyaya ekleyince istediğiniz gibi gösteriyor. Bana örnek bir srt dosyası gönderirmisiniz. Kontrol edelim.11 yıl önce yazılmış -
remy1
hocam problemi anladım. buraya eklerken satır atlamalar yok olmuş. bütün srt dosyaları:
1 00:00:00,093 --> 00:00:03,040 <i>Breaking Bad'in önceki bölümlerinde...</i> 2 00:00:03,084 --> 00:00:05,889 Risinli sigara bu sabah paketimdeydi!
şeklinde oluyor. buna göre kodlarda nasıl bir değişikliğe gideceğiz?
bir de ekrana array düzeninde değil de direkt altyazı dosyasının içindeki gibi basabilirsek iyi olur.11 yıl önce yazılmış 11 yıl önce güncellenmiş -
Kesali
Biraz daha kısalttım regex i ([\d]+)\r\n([\d,:]+) -->; ([\d,:]+)\r\n(.*\r\n.*) bu şekilde istediğin sonucu verecektir.
print_r kullandığım için array olarak veriyor.
Eğer sadece srt dosyasının içeriğini yazdırmak istiyorsanız. Zaten regex e gerek yok
echo file_get_contents('deneme.srt');
Zaten yazdırır.
Aşağıdaki hali ile srt dosyasını array içine alabilirsiniz.
<?php $srt_file = file_get_contents('deneme.srt'); $regex = "/([\d]+)\r\n([\d,:]+) --> ([\d,:]+)\r\n(.*\r\n.*)/"; preg_match_all($regex,$srt_file,$srt_lines,PREG_SET_ORDER); print_r($srt_lines); ?>
Eğer herbir line ı göstermek istiyorsanızı bu örnekteki gibi işinizi görür.
$srt_file = file_get_contents('deneme.srt'); $regex = "/([\d]+)\r\n([\d,:]+) --> ([\d,:]+)\r\n(.*\r\n.*)/"; $line = preg_match_all($regex,$srt_file,$srt_lines,PREG_SET_ORDER); //print_r($srt_lines); foreach($srt_lines as $srt_line){ echo $srt_line[1],' '; echo $srt_line[2],' '; echo $srt_line[3]; echo '<pre>'; echo $srt_line[4]; echo '</pre>'; echo '<br />'; }
11 yıl önce yazılmış 11 yıl önce güncellenmiş
-
Cevaplar
Hiç cevap bulunamadı.