[PHP] SRT Joiner

  • 17 Risposte
  • 4162 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
[PHP] SRT Joiner
« il: Giugno 04, 2007, 01:47:49 am »
Ecco un semplice SRT joiner, per quando si hanno i sottotitoli per un video diviso in due parti, ma il video che si ha e' unico e biosgna unire i due sottotitoli ;)

In allegato c'e' l'exe compilato con bamcompiler ed il sorgente leggermente modificato per il menu dal prompt ;)

Codice: [Seleziona]
<?php

/*****************************************

STR SubTitles Joiner!

Author:  3n1gm4
  Email: 3n1gm4@gmail.com
    Date:  3rd June 2007

*****************************************/


/*******  Start Config  *******/  

// Path
$sub1 'C:\Video1.srt'
$sub2 'C:\Video2.srt';
$dest 'C:\Video.srt';

// Delay of the second sub
$delay '00:00:00,000';

// Sign of delay (could be 1 or -1)
$delay_sign 1;

/*******  End Config  *******/  




function str2ms($st)  // Convert str time (such like 02:03:21,030) in milliseconds
{
$st explode(':'$st);
$s explode(','$st[2]);
// Time in milliseconds
$ms $st[0]*60*60*1000 $st[1]*60*1000 $s[0]*1000 $s[1];
            // HOURS                 MINUTES            SECONDS       ms
return $ms;
}

function 
ms2str($v)
{
$h intval($v/(60*60*1000));
$tmp $v - ($h*(60*60*1000));
$m intval($tmp/(60*1000));
$tmp $tmp - ($m*(60*1000));
$s intval($tmp/1000);
$ms $tmp 1000;
while (strlen($ms)<3) { $ms '0' $ms; }
while (strlen($s)<2) { $s '0' $s; }
while (strlen($m)<2) { $m '0' $m; }
while (strlen($h)<2) { $h '0' $h; }
return $h ':' $m ':' $s ',' $ms;
}


function 
str2a($file// Reads a str file  and puts it into an array $a[id]<[start][end][txt]>
{
$f file($file);
$i 0;
$k 0;
$a[$k]['txt']='';
for($i=0$i<=count($f);$i++)
{
if ( (ord($f[$i]{0}) == 13) and (ord($f[$i]{1}) == 10) )
{
$k++; 
$a[$k]['txt']='';
}
else 
{
$s eregi_replace(chr(10), ''$f[$i]);
$s eregi_replace(chr(13), ''$s);
if ( !( (ord($f[$i]{0})>=ord('0')) and (ord($f[$i]{0})<=ord('9'))) )
{
$a[$k]['txt'] .= $s "\n";
}
else 
{
$b explode(' '$f[$i]);
if ($b[1] == '-->' //  It's the time!
{
$a[$k]['start'] = str2ms($b[0]);
$a[$k]['end'] = str2ms($b[2]);
}
// ELSE original ID?!?
}
}
}
return $a;
}

function 
a2str($a)
{
$str '';
foreach($a as $k => $v

$str .= $k "\n";
$str .= ms2str(intval($v['start'])) . ' --> ' ms2str(intval($v['end'])) . "\n";
$str .= $v['txt'] . "\n";
}
return $str;
}


function 
join_arr($s1$s2$d '00:00:00,000'$sign 1)
{
$a $s1;
$c count($s1);
$s a2str($a);


$max $c 1;
$max intval($a[$max]['end']);
$plus $sign str2ms($d);
$sum $max $plus;


foreach($s2 as $k => $v)
{
$s .= intval($k $c) . "\n";
$s .= ms2str(intval($sum intval($v['start']))) . ' --> ' ms2str($sum intval($v['end'])) . "\n";
$s .= $v['txt'] . "\n";
}
return $s
}





$sub1 =  str2a($sub1);
$sub2 =  str2a($sub2);

$s join_arr($sub1$sub2$delay$sign);

$fh fopen($dest"w");
fwrite($fh$s);
fclose($fh);





?>

[allegato eliminato da un amministratore]
« Ultima modifica: Gennaio 21, 2009, 11:43:21 am da 3n1gm4 »

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!

*

Offline Diavolo_Rosso

  • *****
  • 4881
  • 119
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #1 il: Giugno 04, 2007, 10:45:06 pm »
:o esiste un compilatore per PHP? :o ho trovato il paradiso :o

non esiste qualcosa del genere per creare binari per linux?


sono un dio 8) baciatemi le chiappe ;D
ma si sa: la speranza e' l'ultima a morire ma la prima ad aggrare!
probabilmente molti di coloro che furono vogliono dimenticare di essere mai stati membri di un forum e che ci hanno passato sopra le nottate!

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
Re: [PHP] SRT Joiner
« Risposta #2 il: Giugno 05, 2007, 08:40:35 am »
:o esiste un compilatore per PHP? :o ho trovato il paradiso :o

non esiste qualcosa del genere per creare binari per linux?

per linux usi lo stesso codice, anche lo stesso modo per chiedere i dati, e basta che gli dai il permesso di esecuzione... in oltre deve iniziare con qualcosa tipo !#/bin/php ... pero' compilare non credo...

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!

*

Offline Diavolo_Rosso

  • *****
  • 4881
  • 119
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #3 il: Giugno 05, 2007, 12:29:49 pm »
non ho eseguibili php ne in /bin ne in /sbin ne in /usr/*

mi sa che mi manca qualche pezzo :-\


sono un dio 8) baciatemi le chiappe ;D
ma si sa: la speranza e' l'ultima a morire ma la prima ad aggrare!
probabilmente molti di coloro che furono vogliono dimenticare di essere mai stati membri di un forum e che ci hanno passato sopra le nottate!

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
Re: [PHP] SRT Joiner
« Risposta #4 il: Giugno 05, 2007, 01:41:57 pm »
non ho eseguibili php ne in /bin ne in /sbin ne in /usr/*

mi sa che mi manca qualche pezzo :-\

prova con "whereis php" o php5 o digiti php e  doppio tab... altrimenti vuol dire che php ce l'hai installato come modulo di apache...

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!

*

Offline Diavolo_Rosso

  • *****
  • 4881
  • 119
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #5 il: Giugno 05, 2007, 04:23:53 pm »
prova con "whereis php" o php5 o digiti php e  doppio tab... altrimenti vuol dire che php ce l'hai installato come modulo di apache...

anche se faccio doppio TAB, se non c'è il binario nelle path di sistema dubito che trovi qualcosa :P

cmq mi sa anche a me che è installato come modulo, e sui repo di ubuntu non sembra esserci altro. al massimo me lo compilo dai sorgenti



sono un dio 8) baciatemi le chiappe ;D
ma si sa: la speranza e' l'ultima a morire ma la prima ad aggrare!
probabilmente molti di coloro che furono vogliono dimenticare di essere mai stati membri di un forum e che ci hanno passato sopra le nottate!

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
Re: [PHP] SRT Joiner
« Risposta #6 il: Giugno 05, 2007, 09:17:50 pm »
anche se faccio doppio TAB, se non c'è il binario nelle path di sistema dubito che trovi qualcosa :P

cmq mi sa anche a me che è installato come modulo, e sui repo di ubuntu non sembra esserci altro. al massimo me lo compilo dai sorgenti



ottima idea :D

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!

*

Offline Diavolo_Rosso

  • *****
  • 4881
  • 119
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #7 il: Giugno 06, 2007, 12:10:43 am »
good!!

compilato e funzica tutto alla perfezione.

Non ha neanche avuto bisogno di dipendenze particolari


sono un dio 8) baciatemi le chiappe ;D
ma si sa: la speranza e' l'ultima a morire ma la prima ad aggrare!
probabilmente molti di coloro che furono vogliono dimenticare di essere mai stati membri di un forum e che ci hanno passato sopra le nottate!

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
Re: [PHP] SRT Joiner
« Risposta #8 il: Giugno 06, 2007, 12:38:23 am »
good!!

compilato e funzica tutto alla perfezione.

Non ha neanche avuto bisogno di dipendenze particolari

k++ are free!

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!

*

Offline unreal

  • *****
  • 4197
  • 85
  • La fortuna è cieca, ma la sfiga ci vede bene!
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #9 il: Aprile 12, 2008, 04:05:36 pm »
ohila! bello sto topic!!(me l'ero scordato! :P )

scusate, ho cercato un po(non moltissimo...) ma non ho trovato nulla... utilizzando Bambalam PHP EXE, c'è la possibilita di leggere da riga di comando cosa scrive un utente e memorizzarlo in una variabile??

tks! ;)

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
Re: [PHP] SRT Joiner
« Risposta #10 il: Aprile 13, 2008, 09:48:47 am »
della serie se scrivi

$ ./script.php --gay=unreal

vuoi che ci sia nello script una $gay='unreal'; ??

devi usare $argv, trovi un sacco di materiale in rete, anche nel sito do php.. http://it2.php.net/features.commandline


se invece vuoi leggere da tastiera:
Codice: [Seleziona]
#!/usr/local/bin/php -q
<?php
 
    
function read() {
        
$fp=fopen("/dev/stdin""r");
        
$input=fgets($fp255);
        
fclose($fp);
        return 
$input;
    }
 
    print(
"What is your first name? ");
    
$first_name read();
    print(
"What is your last name? ");
    
$last_name read();
    print(
"\nHello, $first_name $last_name!  Nice to meet you!\n");
 
?>

tra l'altro ci sono implementazioni varie di scanf ect, direttamente dal c... mah :D

ps: mamma che brutto sto codice, impossibile che sia cosi' recente  O_O

« Ultima modifica: Aprile 13, 2008, 10:09:52 am da 3n1gm4 »

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!

*

Offline unreal

  • *****
  • 4197
  • 85
  • La fortuna è cieca, ma la sfiga ci vede bene!
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #11 il: Aprile 13, 2008, 03:57:53 pm »
della serie se scrivi

$ ./script.php --gay=unreal

vuoi che ci sia nello script una $gay='unreal'; ??

devi usare $argv, trovi un sacco di materiale in rete, anche nel sito do php.. http://it2.php.net/features.commandline


se invece vuoi leggere da tastiera:
Codice: [Seleziona]
#!/usr/local/bin/php -q
<?php
 
    
function read() {
        
$fp=fopen("/dev/stdin""r");
        
$input=fgets($fp255);
        
fclose($fp);
        return 
$input;
    }
 
    print(
"What is your first name? ");
    
$first_name read();
    print(
"What is your last name? ");
    
$last_name read();
    print(
"\nHello, $first_name $last_name!  Nice to meet you!\n");
 
?>

tra l'altro ci sono implementazioni varie di scanf ect, direttamente dal c... mah :D

ps: mamma che brutto sto codice, impossibile che sia cosi' recente  O_O


no ciccio.. so leggere anche io gli argomenti dalla riga di comando... :P
mi interessa proprio il prompt di valori direttamente da riga di comando( un menu interattivo tanto per capirci! premi 1 ed esci, premi 2 e continua!)

cmq il codice che hai postato sarebbe perfetto... come lo implemento su win? >.>
« Ultima modifica: Aprile 13, 2008, 03:59:29 pm da UnReAL »

*

Offline Diavolo_Rosso

  • *****
  • 4881
  • 119
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #12 il: Aprile 13, 2008, 04:07:16 pm »
cmq il codice che hai postato sarebbe perfetto... come lo implemento su win? >.>

perchè? cosa c'è che non va su win, in quel codice?


sono un dio 8) baciatemi le chiappe ;D
ma si sa: la speranza e' l'ultima a morire ma la prima ad aggrare!
probabilmente molti di coloro che furono vogliono dimenticare di essere mai stati membri di un forum e che ci hanno passato sopra le nottate!

*

Offline unreal

  • *****
  • 4197
  • 85
  • La fortuna è cieca, ma la sfiga ci vede bene!
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #13 il: Aprile 13, 2008, 05:26:09 pm »
perchè? cosa c'è che non va su win, in quel codice?
"/dev/stdin" me lo legge su win??(non ho provato...)

*

Offline Diavolo_Rosso

  • *****
  • 4881
  • 119
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #14 il: Aprile 13, 2008, 08:58:34 pm »
"/dev/stdin" me lo legge su win??(non ho provato...)

giusto...non te lo riconosce -.- mea culpa


sono un dio 8) baciatemi le chiappe ;D
ma si sa: la speranza e' l'ultima a morire ma la prima ad aggrare!
probabilmente molti di coloro che furono vogliono dimenticare di essere mai stati membri di un forum e che ci hanno passato sopra le nottate!

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
Re: [PHP] SRT Joiner
« Risposta #15 il: Aprile 14, 2008, 10:33:52 am »
Codice: [Seleziona]
<?php
/* Define STDIN in case if it is not already defined by PHP for some reason */
if(!defined("STDIN")) {
define("STDIN"fopen('php://stdin','r'))
}
 
echo 
"Hello! What is your name (enter below):\n";
$strName fread(STDIN80); // Read up to 80 characters or a newline
echo 'Hello ' $strName "\n";
?>

php://stdin e' uno stream aperto da php cli, c'e' anche php://stdout, ma che ve ne frega se usate echo e print? xD

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!

*

Offline unreal

  • *****
  • 4197
  • 85
  • La fortuna è cieca, ma la sfiga ci vede bene!
    • Mostra profilo
Re: [PHP] SRT Joiner
« Risposta #16 il: Aprile 14, 2008, 12:43:05 pm »
Codice: [Seleziona]
<?php
/* Define STDIN in case if it is not already defined by PHP for some reason */
if(!defined("STDIN")) {
define("STDIN"fopen('php://stdin','r'))
}
 
echo 
"Hello! What is your name (enter below):\n";
$strName fread(STDIN80); // Read up to 80 characters or a newline
echo 'Hello ' $strName "\n";
?>

php://stdin e' uno stream aperto da php cli, c'e' anche php://stdout, ma che ve ne frega se usate echo e print? xD

ah ok, ora va meglio  ;D ;D ancora k++ per te! ;)

*

Offline 3n1gm4

  • *****
  • 8432
  • 256
  • Chiamami 02-303123903
    • Mostra profilo
    • nigma blog
Re: [PHP] SRT Joiner
« Risposta #17 il: Aprile 15, 2008, 11:44:29 pm »
ah ok, ora va meglio  ;D ;D ancora k++ per te! ;)

ty :*

nigma blog
Impara Il Sardo 1 2
vengo a cagliari di persona accompagnato dall'armata elfica per giocare a quake3arena dentro casa tua!