הנה הקוד:
זה עובד:
PHP קוד:
<pre>
<?php
$srtInput = '1
00:00:09,600 --> 00:00:10,644
<i>!חשוך כאן</i>
2
00:00:11,345 --> 00:00:13,045
<i>המנהל סקינר
אני צובע בתים</i>
3
00:00:15,046 --> 00:00:16,546
<i>אני לא אשפוך רוטב חריף
לתוך בובת ההחייאה</i>';
$regExp = "#[0-9]{1,5}[\n]([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3}) --> ([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3})\n((.+\n)*)#";
$results = preg_match_all($regExp,"\n".$srtInput."\n", $matches);
print_r($matches);
?>
</pre>
אבל זה לא עובד:
PHP קוד:
<pre>
<?php
$srtInput = file_get_contents("sd.srt");
$regExp = "#[0-9]{1,5}[\n]([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3}) --> ([0-9]{2}:[0-9]{2}:[0-9]{2}),([0-9]{3})\n((.+\n)*)#";
$results = preg_match_all($regExp,"\n".$srtInput."\n", $matches);
print_r($matches);
?>
</pre>
הקובץ sd.srt מכיל את התוכן הבא:
ציטוט:
1
00:00:09,600 --> 00:00:10,644
<i>!חשוך כאן</i>
2
00:00:11,345 --> 00:00:13,045
<i>המנהל סקינר
אני צובע בתים</i>
3
00:00:15,046 --> 00:00:16,546
<i>אני לא אשפוך רוטב חריף
לתוך בובת ההחייאה</i>
|
(בקיצור קובץ כתוביות רגיל שהורדתי מאינטרנט)
ההבדל היחיד ששמתי לב אליו זה שאם אני מציג את שניהם בטבלה(כל אחד בטור) אז התוכן של המשתנה שהעתקתי אליו את התוכן ידנית יורד שורה אחת למטה,לא הצלחתי לסדר את זה
ועוד דבר אחד שגיליתי מחיפוש קצר בפורומים באינטרנט זה שכתוביות מקודדות בUTF16,וPHP לא תומך בUFT16 בצורה מושלמת,ויכול להיות שזה הסיבה,אבל אני לא מצליח לשנות לקובץ את הקידוד