Php : j'ai un problème avec substr()

Résolu/Fermé
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 - 29 avril 2010 à 17:54
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 - 30 avril 2010 à 18:45
Bonjour, j'ai un problème avec le code ci-dessous :

<?php

$texte="href='abcdefghijk'";
$lienExtrait=substr($texte,6,8);
echo"<br>$lienExtrait";

?>

et au lieu de m'afficher abc, et bien ça m'affiche abcdefgh

Est-ce que quelqu'un aurait la charité de me donner la solution ?

Merci cordialement

A voir également:

5 réponses

crapoulou Messages postés 28158 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 16 avril 2024 7 990
29 avril 2010 à 17:56
Salut,
Regarde la documentation ici sur cette fonction, cela te donnera une idée de comment l'utiliser :

http://www.manuelphp.com/php/function.substr.php
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
29 avril 2010 à 17:59
Bonjour,

Le premier chiffre de la fonction substr indique le caractère de départ (0 pour le premier) et le second la longueur de l'extraction et non le dernier caractère extrait, en somme si tu voulais récupérer abc, tu devrais écrive:

$lienExtrait=substr($texte,6,3);
0
Absinthe06 Messages postés 102 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 7 juillet 2010 11
Modifié par Absinthe06 le 30/04/2010 à 09:30
salut,

pour ton problème, c'est normal : le dernier paramètre de substr n'est pas le caractère de fin de l'extraction, mais la longueur souhaitée. Donc, dans ce cas précis, tu ne demandes pas à extraire entre les caractères 6 et 8, mais les 8 caractères à partir du 6ème (donc 6 à 13), ce qui te renvois "abcdefgh".

Il suffit donc simplement de faire
$lienExtrait=substr($texte,6,3); 
pour obtenir "abc" ;)
"Un con qui roule va plus loin qu'un intellectuel assis..."
Absinthe, game designer, graphiste, et webmaster à ses heures perdues...
0
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
30 avril 2010 à 07:54
6 à 13 ?

Ce n'est pas plutôt 6 à 9 ?

$lienExtrait=substr($texte,6,32); ???

Ce n'est pas plutôt: $lienExtrait=substr($texte,6,3); ?

0
Absinthe06 Messages postés 102 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 7 juillet 2010 11
Modifié par Absinthe06 le 30/04/2010 à 09:29
erreur de frappe, c'etait bien 3, et pas 32 ! mon doigt a du ripper, je corrige immédiatement...

et non, de 6 à 9 c'est ce qu'il VOULAIT faire, et de 6 à 13 ce qu'il FAISAIT ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JessayeDeTrouver Messages postés 270 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 4 mai 2012 47
30 avril 2010 à 18:45
Et vous savez quoi ?

dès que j'ai vu vos réponses, la 1ère chose que j'ai voulu faire, c'est de me mettre des baffes dans la tronche, ou me cogner contre un arbre...

Merci pour la solution.
0