Actuellement, j'ai le code suivant.
Can't Use My Phone (Suite) 3:34 Hi 0:35 Cel U Lar Device 6:28 Phone Down 3:29 U Use To Call Me 1:13 Mr. Telephone Man 3:12
Qui renvoie quelque chose qui ressemble à ceci.
foreach($html->find('ol.tracklist li.track') as $element) {
print $element->plaintext;
print '<br>';
}
Je me demande comment je peut supprimer les nombres à chacun de ces résultats. Je suppose que je dois utiliser regex pour y parvenir, mais après avoir un peu dérangé les regex, je n'ai pas pu trouver un moyen d'y parvenir sans affecter les titres qui contiennent également des choses comme. : ou d'autres symboles.
6 Réponses :
Probablement pas la meilleure solution, mais vous pouvez simplement couper les 4 à 5 derniers caractères de la chaîne
substr( $string, 0, -5 );
Ce serait une idée horrible, car parfois les nombres n'apparaissent pas du tout dans l'itération. Par conséquent, j'ai besoin d'utiliser Regex comme mentionné.
essayez celui-ci cela peut vous aider, changez la variable $ str avec votre texte
$re = '/\d+:\d+/m'; $str = 'Caint Use My Phone (Suite) 3:34'; echo preg_replace($re, '', $str);
Belle réponse, cela aurait également résolu mon problème, alors j'ai voté pour votre réponse. Cependant, j'ai vu le post de Nick avant la main. Merci beaucoup d'avoir pris le temps de m'aider.
@Quelqu'un ne s'inquiète pas. Je suis heureux d'avoir pu aider.
Vous devriez essayer cette expression régulière / \ d +: \ d + $ / gm .
Bonne chance
Vous pouvez simplement couper le dernier caractère de chaque chaîne tant qu'il s'agit d'un nombre ou de deux points:
foreach($html->find('ol.tracklist li.track') as $element) {
$text = $element->plaintext;
while(preg_match('/[\d:]$/', $text[strlen($text)-1])) {
$text = substr($text, 0, strlen($text)-1);
}
echo $text;
print '<br>';
}
Si c'est toujours le même format hh: mm, vous pouvez trouver le dernier espace avec strrpos ()
$string = 'Cel U Lar Device 6:28'; $string = substr($string, 0, strrpos($string, ' '));