用Ai寫的字幕拼接成文章php腳本

剪映製作好之後,需要將導出的是srt字幕,這個腳本將字幕拼接,整理成文章,然後用Ai潤色下,大大提供工作效率。

<?php


if($_FILES["subtitle"]["error"] == UPLOAD_ERR_OK&&isset($_FILES['subtitle'])) {
  $subtitle = $_FILES["subtitle"]["tmp_name"];
  $targetFolder = "uploads/"; // 指定目標文件夾
  $targetFile = $targetFolder . $_FILES["subtitle"]["name"];
 // move_uploaded_file($subtitle, $targetFile);
  
  // 讀取SRT文件並拼接字幕
$subtitles = extractSRT($subtitle);

// 輸出拼接好的字幕
foreach ($subtitles as $subtitle) {
   // echo "ID: " . $subtitle['id'] . "\n";
   // echo "Time: " . $subtitle['start'] . " --> " . $subtitle['end'] . "\n";
    echo $subtitle['content'] . "\n\n";
}
  
  
  //echo "字幕文件上傳成功!";
} else {
 // echo "字幕文件上傳失敗!";
}


// 讀取SRT文件並拼接字幕
function extractSRT($filename) {
    // 打開SRT文件
    $file = fopen($filename, "r");

    // 初始化字幕數組
    $subtitles = [];

    // 逐行讀取文件內容
    $subtitle = [];
    while (($line = fgets($file)) !== false) {
        // 移除行尾的換行符
        $line = trim($line);

        if ($line === "") {
            // 空行表示一個字幕結束,將字幕數組加入到總字幕數組中
            if (!empty($subtitle)) {
                $subtitles[] = $subtitle;
                $subtitle = [];
            }
        } elseif (is_numeric($line)) {
            // 數字行表示字幕序號,存儲到字幕數組中
            $subtitle['id'] = intval($line);
        } elseif (strpos($line, "-->") !== false) {
            // 時間戳行表示字幕時間,存儲到字幕數組中
            $timestamps = explode(" --> ", $line);
            $subtitle['start'] = $timestamps[0];
            $subtitle['end'] = $timestamps[1];
        } else {
            // 非空行並且不是序號或時間戳行,表示字幕內容行,存儲到字幕數組中
            if (!isset($subtitle['content'])) {
                $subtitle['content'] = $line;
            } else {
                $subtitle['content'] .= " " . $line;
            }
        }
    }

    // 關閉文件句柄
    fclose($file);

    // 返回拼接好的字幕數組
    return $subtitles;
}


?>
<html>
<head>
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<meta charset="utf-8"></meta>
</head>

<body>
    <div class="container">
  <h2>上傳SRT字幕文件</h2>
  <form action="./srt.php" method="post" enctype="multipart/form-data">
    <div class="form-group">
      <label for="subtitle">選擇字幕文件:</label>
      <input type="file" class="form-control" id="subtitle" name="subtitle">
    </div>
    <button type="submit" class="btn btn-primary">上傳</button>
  </form>
</div>
</body>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章