Aller au contenu

Modification fonction substr


Sujets conseillés

Posté

Bonjour à toutes et à tous,


 


Un truc tout bête, j'ai besoin, pour des raisons pratiques que :



echo substr('abcdef', -100, 1);

me retourne une variable vide et non "a" (d'ailleurs c'est plutôt logique non ?)


 


Y-a-t-il un moyen ?


 


Si vous aviez la réponse, ça serait chouette...


 


sand.


Posté

Bonjour,


 


Désolé mais en posant cette question, cela montre que ton code est un peu "bancal".


 


Quel intérêt de retourner vide en tronquant une chaine?


 


Autant renvoyer vide tout de suite.



<?php

// Conditions pour que l'on prenne - 100?
$st = -100;

echo ($st == -100)? "" : substr('abcdef', 1, 1);

//Si $st = -100 alors on affiche vide, sinon on affiche 'a'
?>
Posté

Salut Portekoi,


 


Merci de t'intéresser à mon cas.


 


En fait 'abcdef' est une variable qui peut aller de 0 à 100 caractères


et -100 aussi est une variable qui peut aller de -1 à -100


et si par exemple la première variable fait 5 caractères et que la deuxième fait -100 :



echo substr('abcdef', -100, 1);

je ne veux pas que cela me sorte un "a" mais un vide.


Un "a" sera réservé uniquement pour cette ligne de code :



echo substr('abcdef', -5, 1);

Ca me paraissait simple au départ.


J'ai l'impression que je saisis pas bien ce que tu veux me dire ?

Posté

Si ta seconde variable est toujours négative, tu veux renvoyer quoi comme valeur?


 


Si $variable_2 = -1, que veux tu afficher?


 


echo substr('abcdef', -1, 1); ==> "vide"?


Posté

et bien echo substr('abcdef', -1, 1); ==> "f" bien sûr


et echo substr('abcdef', -2, 1); ==> "e"


et echo substr('abcdef', -3, 1); ==> "d"


et echo substr('abcdef', -4, 1); ==> "c"


et echo substr('abcdef', -5, 1); ==> "b"


et echo substr('abcdef', -6, 1); ==> "a"


 


et echo substr('abcdef', -7, 1); ==> ""


et echo substr('abcdef', -8, 1); ==> ""


ainsi de suite...


Posté

<?php

$string = 'abcdef';

$var = -7;

if(abs($var) <= strlen($string)+1)

echo substr(strrev($string), abs($var)-1, 1);

else

echo "";

?>

Posté (modifié)

Désolée Portekoi pour le retard du retour...


 


Oui c'est exactement ça Portekoi ! Merci.


 


Juste une remarque à titre d'information, 


pourquoi quand on met une valeur dans le else echo (final) dans le cas d'une $var=-7


ça n'affiche pas la valeur ?


Modifié par sandrinoo
Posté

Parce que ta chaine en entrée 'abcdef' fait 6 positions.


 


Du coup, le test est : Si 7 <= 6 alors tu fais le substr sinon tu n'affiches rien. Fin Si


Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...