在PHP中,你可以使用文件操作函数来读取并解析SRT字幕文件。以下是一个简单的PHP脚本,用于导入SRT字幕文件并将其存储在数组中。
<?php
// 假设srt文件的路径为'subtitles.srt'
$srtFilePath = 'subtitles.srt';
// 读取SRT文件内容
$srtContent = file_get_contents($srtFilePath);
// 将SRT内容按行分割
$lines = explode("\n", $srtContent);
// 用于存储字幕的数组
$subtitles = [];
// 临时变量,用于存储当前字幕的信息
$currentSub = null;
foreach ($lines as $line) {
$line = trim($line);
if (ctype_digit($line)) {
// 新字幕的开始
if ($currentSub !== null) {
// 保存上一个字幕
$subtitles[] = $currentSub;
}
$currentSub = [
'id' => (int)$line,
'timings' => [],
'text' => ''
];
} elseif ($line !== '') {
// 这一行是字幕的时间戳
if (strpos($line, '-->') !== false) {
$timings = explode('-->', $line);
$currentSub['timings'] = [
'start' => trim($timings[0]),
'end' => trim($timings[1])
];
} else {
// 这一行是字幕文本
$currentSub['text'] .= "$line\n";
}
}
}
// 保存最后一个字幕
if ($currentSub !== null) {
$subtitles[] = $currentSub;
}
// 输出字幕数组
print_r($subtitles);
这段代码将读取SRT文件,并为每个字幕创建一个数组,其中包含字幕ID、开始和结束时间戳以及字幕文本。最后,它会输出包含所有字幕信息的数组。