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
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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