sustr et strpos

Petit nouveau ! | 1 Messages

19 juin 2009, 12:45

Bonjour à tous,

Je viens vous demander de l'aide, ou plutôt des explications.
J'apprend le PHP non sans mal, mais avec grand plaisir et détermination.
Je suis en train de suivre un exemple concret d'un livre sur la réalisation de transfert de fichiers (serveur->client).
A un moment, il y a le terme "substr et strpos".
J'ai bien regardé sur "manuelphp.com", mais j'ai du mal à comprendre les 2 fonctions.
Alors ma demande est simple: Est-ce qu'une personne peut m'expliquer par des mots simples voir aussi par un/des cas concret(s).
Voici la partie du code du livre (Je sais pas si j'ai le droit de diffuser un code qui ne m'appartient pas?)

$dir= opendir("photos");
while($fichier= readdir($dir)
{
if(ereg("\.jpg\$, $fichier))
{
$id= substr($fichier,0, strpos($fichier, "."));
$requete="SELECT * FROM album WHERE id='$id'";
$resultat= execrequete($requete, $connexion);

Et aprés c'est l'affichage des données.

Merci d'avance.
Nicolas.

De retour.
Je pense avoir compris la manip.
La fonction "substr" sélectionne toute la chaîne avec un début et une fin.
La fonction "strpos" sélectionne un caractère dans une chaîne.

Je prend l'exemple suivant:

$fichier="toto.doc";
$selection= substr($fichier,0, strpos($fichier,"."));

echo $selection.

En fait le 0 du substr donne le début et le strpos($fichier,".") donne la fin. Ce qui me donnera à l'affichage:"toto".

Mais maintenant 2ème question: si j'ai comme $id="toto" et que je fais la requête suivante $requete="SELECT * FROM album WHERE id='$id'";

Dans le "id" de la table je n'ai pas toto, il se trouve dans la clé "titre". Le "id" est auto_incrementé et c'est que des chiffres??

Je sais pas si j'ai été clair dans mon explication?

Merci d'avance
Nicolas.

Bon ben voila j'ai compris la manip, c'est moi qui ne fais pas attention. le $fichier retourne le id de la table dans mon exemple.

Et bien je me suis fait un post tout seul :/

A bientôt.

ViPHP
ViPHP | 3300 Messages

19 juin 2009, 15:28

woh déja il y'a un ereg, dans ton code, si c'est tiré du livre, je doute fortement que ce livre soit à jour...

substr c'est comment chercher une occurence dans un texte en se basant sur la numérotation des caractères le composant (du char n à la fin, du début jusqu'au char n, etc, etc)

strpos, te donne le numéro d'un caractère dans une chaine (la première fois qu'il l'a trouve en la lisant de gauche à droite)

et il est vrai qu'avec ces deux fonctions combinées on peut faire des choses très sympatiques.
Fait du php depuis que ca existe ou presque :)