J'ai un problème. J'essaie de compter le nombre de lignes de sous-titres avec php. Comme vous le savez peut-être, un sous-titre ressemble à ceci:php regex lire des lignes spécifiques
1
00:00:00,984 --> 00:00:03,503
All right, guys, let's get to it.
2
00:00:03,587 --> 00:00:04,821
What's that button?
3
00:00:04,872 --> 00:00:07,590
It's something designed
to help you get healthy.
4
00:00:07,658 --> 00:00:09,676
Just ignore it.
5
00:00:09,760 --> 00:00:12,962
So, Patrick, did you take the high road
Maintenant, j'ai essayé de mettre le contenu d'un fichier de sous-titres dans un tableau, comme ceci:
$f = fopen($file, 'rb');
$read = fread($f, filesize($file));
fclose($f);
$array = explode("\n",$read);
Avec ce code:
$array = array_filter($array,'trim');
foreach($array as $key => $value) {
if(preg_match('/\d+/',$value)) {
unset($array[$key]);
}
}
$array = array_values($array);
echo '<pre>';
print_r($array);
echo '</pre>';
i get:
Array
(
[0] => All right, guys, let's get to it.
[1] => What's that button?
[2] => It's something designed
[3] => to help you get healthy.
[4] => Just ignore it.
[5] => So, Patrick, did you take the high road
[6] => and congratulate Wendy on that promotion
[7] => that you were supposed to get?
[8] => Yes, I did. I even bought her flowers.
[9] => Liar!
)
qui n'est pas correct, car
It's something designed
to help you get healthy.
devrait être dans un seul élément du tableau.
J'ai aussi essayé de faire correspondre tout entre (par exemple):
1
00:00:00,984 --> 00:00:03,503
et
2
00:00:03,587 --> 00:00:04,821
avec:
(\d+\n)([0-9][0-9]:[0-9][0-9]:[0-9][0-9],\d+ --> [0-9][0-9]:[0-9][0-9]:[0-9][0-9],\d+\n).*\n
mais il ne fonctionne pas et i » Je suis à court d'idées.
Ce que je suis Tring sortie:
Array
(
[0] => All right, guys, let's get to it.
[1] => What's that button?
[2] => It's something designed to help you get healthy.
[3] => Just ignore it.
[4] => So, Patrick, did you take the high road
[5] => and congratulate Wendy on that promotion that you were supposed to get?
[6] => Yes, I did. I even bought her flowers.
[7] => Liar!
)
echo count($array); //for the previous array , should echo 8
Toute aide sera appréciée.
Merci beaucoup, monsieur. Votre code fonctionne comme je l'ai demandé. – nikodemus