08. april 2007 - 21:34
Der er
5 kommentarer
00:00:17,800 + 57minutter. Hvordan?
Hej, jeg har en streng som indeholder en laaang tekst. Denne tekst kan se ud som følgende: 1 00:00:00,000 --> 00:00:01,300 ... 2 00:00:02,700 --> 00:00:05,700 ... 3 00:00:17,800 --> 00:00:19,600 ... Nu vil jeg bare gerne have et output som kan plusse tiden med et antal minutter OG plusse tallene(1,2,3...) ovenover med et bestemt tal. Hvordan skal dette se ud?
Annonceindlæg tema
Cloud & AI
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
08. april 2007 - 21:39
#1
<?php $number = 493; $time = "00:57:26:800"; $string = <<<END 1 00:00:00,000 --> 00:00:01,300 Tilfældig tekst 2 00:00:02,700 --> 00:00:05,700 Tilfældig tekst 3 00:00:17,800 --> 00:00:19,600 Tilfældig tekst END; ?> Det må være noget alá ovenstående og så gøre brug af preg_match_all, og så få fat i tallet og bagefter de to tider der er angivet lige under tallet
08. april 2007 - 21:44
#2
har lavet lidt, men kan ikke få det til at virke rigtigt. hvordan plusser man i en preg_replace? <?php $number = 493; $time = "00:57:26:800"; $string = <<<END 1 00:00:00,000 --> 00:00:01,300 Tilfældig tekst 2 00:00:02,700 --> 00:00:05,700 Tilfældig tekst 3 00:00:17,800 --> 00:00:19,600 Tilfældig tekst END; echo "<pre>" . preg_replace( "/(\d+)/", "\\1+" . $number, $string ) . "</pre>"; ?>
08. april 2007 - 21:45
#3
echo "<pre>" . preg_replace( "/(\d+)/e", "\\1+{$number}", $string ) . "</pre>"; :D
08. april 2007 - 21:48
#4
<?php $number = 493; $time = "00:57:26:800"; $string = <<<END 1 00:00:00,000 --> 00:00:01,300 Tilfældig tekst 2 00:00:02,700 --> 00:00:05,700 Tilfældig tekst 3 00:00:17,800 --> 00:00:19,600 Tilfældig tekst END; $string = preg_replace( "/(\d+)\r/e", "\\1+{$number}", $string ); echo "<pre>{$string}</pre>"; ?> Hvordan laver jeg så endnu en preg_replace, som kan ændre tiderne? Altså plusse med 57 minutter, så måden det er stillet op på stadig fungerer?
08. april 2007 - 23:25
#5
// tidsstempel > ms function Time2Int($time){ $a = explode(":", $time); $b = explode(",", $a[2]); $c = 1000*(60*60*$a[0] + 60*$a[1] + $b[0]) + $b[1]; return $c; } // ms > tidsstempel function Int2Time($time){ $h = (int)($time / (60*60*1000)); $time -= $h*60*60*1000; $m = (int)($time / (60*1000)); $time -= $m*60*1000; $s = (int)($time / 1000); $time -= $s*1000; $ms = $time; return sprintf("%02d:%02d:%02d,%03d", $h, $m, $s, $ms); } function Adjust($num, $beg, $end){ $beg = Time2Int($beg); $end = Time2Int($end); $addtime = Time2Int($GLOBALS['time']); $beg += $addtime; $end += $addtime; $beg = Int2Time($beg); $end = Int2Time($end); $num += $GLOBALS['number']; return "$num\r\n"."$beg --> $end"; } $string = preg_replace("/(\d+)\r?\n(\d+:\d+:\d+,\d+) --> (\d+:\d+:\d+,\d+)/e", "Adjust('$1','$2','$3')", $string ); echo "<pre>{$string}</pre>";
Vi tilbyder markedets bedste kurser inden for webudvikling