Tuesday, 15 March 2011

regex - Convert youtube Api v3 video duration in php -



regex - Convert youtube Api v3 video duration in php -

how convert pt2h34m25s 2:34:25

i searched , used code. i'm new regex can explain ? , help me issue

function covtime($youtube_time){ preg_match_all('/(\d+)/',$youtube_time,$parts); $hours = floor($parts[0][0]/60); $minutes = $parts[0][0]%60; $seconds = $parts[0][1]; if($hours != 0) homecoming $hours.':'.$minutes.':'.$seconds; else homecoming $minutes.':'.$seconds; }

but code give me hh:mm

so dumb found solution :

function covtime($youtube_time){ preg_match_all('/(\d+)/',$youtube_time,$parts); $hours = $parts[0][0]; $minutes = $parts[0][1]; $seconds = $parts[0][2]; if($seconds != 0) homecoming $hours.':'.$minutes.':'.$seconds; else homecoming $hours.':'.$minutes; }

you should take @ $parts variable after it's created.

var_dump($parts);

compare output how defining variables. should stand out pretty after that.

i guess next question after variations of input time string expecting , validation doing? variations of input format want handle impact complexity of actual code written.

edit: here updated function handle missing numeric values (if hours or minutes omitted) , seconds/hours on 60 (not sure if ever happen). doesn't validate label numbers:

1 number: assume seconds 2 numbers: assume minutes, seconds 3 or more numbers: assume first 3 numbers hours, minutes, seconds (ignoring numbers)

more validation can added validating input string.

<?php function covtime($youtube_time) { preg_match_all('/(\d+)/',$youtube_time,$parts); // set in zeros if have less 3 numbers. if (count($parts[0]) == 1) { array_unshift($parts[0], "0", "0"); } elseif (count($parts[0]) == 2) { array_unshift($parts[0], "0"); } $sec_init = $parts[0][2]; $seconds = $sec_init%60; $seconds_overflow = floor($sec_init/60); $min_init = $parts[0][1] + $seconds_overflow; $minutes = ($min_init)%60; $minutes_overflow = floor(($min_init)/60); $hours = $parts[0][0] + $minutes_overflow; if($hours != 0) homecoming $hours.':'.$minutes.':'.$seconds; else homecoming $minutes.':'.$seconds; }

php regex youtube-api

No comments:

Post a Comment