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

Résolu
JessayeDeTrouver Messages postés 270 Date d'inscription   Statut Membre Dernière intervention   -  
JessayeDeTrouver Messages postés 270 Date d'inscription   Statut Membre Dernière intervention   -
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 28195 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 012
 
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   Statut Contributeur Dernière intervention   1 693
 
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   Statut Membre Dernière intervention   11
 
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   Statut Contributeur Dernière intervention   1 693
 
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   Statut Membre Dernière intervention   11
 
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   Statut Membre Dernière intervention   47
 
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