Het probleem:
Ik wil niet per regel het bestand uit elkaar halen, maar per een variabel aantal regels.

Het bestand:

1
00:00:00,100 --> 00:00:02,099
Wat vooraf ging in deze serie.

2
00:00:02,100 --> 00:00:03,999
Wat heeft, wat jij doet in
de ziekenafdeling,

3
00:00:04,000 --> 00:00:05,699
te maken met wat wij
hier doen?


Wat ik nu zou willen is dat hij dit bestand uit elkaar haalt in die regels waar een lege regel staat.
Dus bijv regel 0 zou dan zijn:
1
00:00:00,100 --> 00:00:02,099
Wat vooraf ging in deze serie.


En dan zo verder...

Nu probeer ik dit met dit stukje code, maar het wilt maar niet lukken.

<?php
   $regel = $_GET['regel'];
   $bestand = $_GET['f'];

   $srtFile = $bestand;

   $fp = fopen($srtFile, "r");
   $content = fread($fp, filesize($srtFile));
   $regels = explode("\n\n",$content);
   fclose($fp);

   echo $regels[$regel];
?>


Voorbeeld:
http://www.glorb.nl/beta/split/?f=file1.srt&regel=0


Kan iemand mij helpen?
Je bent al aardig opweg, alleen een nieuwe regel is \r\n ipv. \n

<?php
$regels = explode("\r\n\r\n",$content);
?>
BEDANKT!!!!!!

HET WERKT!!! Nee caps lock staat niet aan. :P

Van waar die \r ineens dan, die heb ik serieus nog nooit ergens zien staan, en ben al best lang aan het programmeren. :P
Die \r (return) zorgt er voor dat je naar het begin van de regel gaat en \n (newline) zorgt er voor dat je naar de volgende regel gaat.
Ik weet het niet zeker hoor :P
Volgensmij heeft het te maken met het DOS tijdperk.
Tip: Ga nou niet kloten met \r of \n, maar gebruik nou de ingebouwde PHP constante: PHP_EOL.

Voorbeeld:
<?php
$regels = explode(PHP_EOL, $content);
?>


PHP_EOL staat in Windows voor \r\n en in Linux voor \r of iets dergelijks. Maar die line-breaks zijn per Operating System anders, daarom kun je maar beter zo'n ingebouwde constante gebruiken.

Reageren