Bonjour tout le monde,

j'ai un petit problème pour extraire l'id (juste avant "-1.html) de plusieurs url de type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
http://www.domaine.com/keyword1-keyword2-keyword3-id-1.html

http://www.domaine.com/keyword1-keyword2-id-1.html

http://www.domaine.com/keyword1-id-1.html

Pour l'instant j'ai trouvé cette fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
    function extract_unit($string, $start, $end)
    {
    $pos = stripos($string, $start);
 
    $str = substr($string, $pos);
 
    $str_two = substr($str, strlen($start));
 
    $second_pos = stripos($str_two, $end);
 
    $str_three = substr($str_two, 0, $second_pos);
 
    $unit = trim($str_three); // remove whitespaces
 
    return $unit;
    }
 
    $text = 'http://www.domaine.com/keyword1-keyword2-keyword3-id-1.html';
    $text2 = 'http://www.domaine.com/keyword1-keyword2-id-1.html';
    $text3 = 'http://www.domaine.com/keyword1-id-1.html';
 
    $unit1 = extract_unit($text, '-', '-1.html)');
    $unit2 = extract_unit($text2, '-', '-1.html)');
    $unit3 = extract_unit($text3, '-', '-1.html)');
Mais comme vous l'avez peut être déjà deveniné, au lieu d'avoir uniquement l'ID, cela me donne ces résultats :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$unit1 = keyword2-keyword3-id
 
$unit2 = keyword2-id
 
$unit3 = id ( le seul qui marche puisqu'il n'y a qu'un seul tiret avant l'id)
La seule constante dans l'url est la fin : -1.html , car avant l'ID, il peut y avoir plusieurs tirets. Du coup, je ne vois pas comment extraire cet ID !

Est-ce que quelqu'un aurait la gentillesse de m'aider ?

Merci beaucoup !