Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1130 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Explications sur une fonction php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Explications sur une fonction php

n°2000606
dexenium
Posté le 10-06-2010 à 17:10:48  profilanswer
 

Bonjour,
 
Pourriez vous m'aider à décrypter cette fonction en expliquant les lignes php (pour les <br> et les <a href> je connais mais pour les $ret=""; c'est du chinois)  :jap:  
 

Code :
  1. function _indique() {
  2.     global $f;
  3.     $ret="";
  4.     if($f->indique) {
  5.     $t=explode(",",$f->indique);
  6.     for($i=0;$i<count($t);$i++) {
  7.     if($t[$i]) $ret .= "<br><br ><img src=/photos/$t[$i].jpg ><a href=/info.html?_ref=".$t[$i].">".get("exemple","detail",$t[$i])."</a>";
  8.     }
  9.     return "<div style='margin: 0 20px;'>Information :</div>".substr($ret,4) ;
  10.     }
  11.     }


Merci

mood
Publicité
Posté le 10-06-2010 à 17:10:48  profilanswer
 

n°2000611
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 10-06-2010 à 17:17:54  profilanswer
 

global $f infique que la fonction va utiliser une variable $f dont la portée n'était pas globale (et va le devenir).
 cela évite de passer en paramètre la variable $f
 
$ret = "" crée une chaine de caractères vide ($ret pour 'retour' je présume)
 
Si $f->indique (attribut de $f) existe
$t = explode => crée un tableau php (liste de valeurs) à partir d'un attribut de $f
 
et pour tout élément du tableau, partant de la position 0 à count == nb d'élements, on ajoute dans $ret un code HTML.
 
Mais si $f->indique n'existe pas, on retourne juste une div.
 
EDIT : soit dit en passant, il doit manquer un bout de la fonction, notamment return $ret je pense ...

Message cité 1 fois
Message édité par NewsletTux le 10-06-2010 à 17:18:46

---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2000614
rufo
Pas me confondre avec Lycos!
Posté le 10-06-2010 à 17:22:16  profilanswer
 

outre le fait que c'est codé crado (genre l'utilisation d'une variable déclarée globale ailleurs), en gros :
- indique que $f est une var globale
- vérifie que l'attribut "indique" de $f existe et pas vide
- split le contenu de l'attribut dans un tableau en utilisant la virgule comme séparateur
- boucle qui parcourt le tableau pour mettre dans $ret du html, un lien sur une image avec un appel à la fonction get() qui doit renvoyer probablement des infos détaillées sur l'image en question
- retourne du html : une div contenant le html généré dans $ret, à partir du 4ième octet de cette variable jusqu'à la fin (pourquoi, a priori pour pas afficher le 1er <br> des fois que le mec aurait simplement fait un if sur le 1er tour de boucle :/)
 
Bilan des courses, cette fonction affiche une liste d'images avec leurs détails dans un html très douteux (utilisation de <br><br> à la place d'un <ul> et de <li> )...
 
Bref, du code à pas reprendre.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2000615
rufo
Pas me confondre avec Lycos!
Posté le 10-06-2010 à 17:23:22  profilanswer
 

NewsletTux a écrit :

global $f infique que la fonction va utiliser une variable $f dont la portée n'était pas globale (et va le devenir).
 cela évite de passer en paramètre la variable $f
 
$ret = "" crée une chaine de caractères vide ($ret pour 'retour' je présume)
 
Si $f->indique (attribut de $f) existe
$t = explode => crée un tableau php (liste de valeurs) à partir d'un attribut de $f
 
et pour tout élément du tableau, partant de la position 0 à count == nb d'élements, on ajoute dans $ret un code HTML.
 
Mais si $f->indique n'existe pas, on retourne juste une div.
 
EDIT : soit dit en passant, il doit manquer un bout de la fonction, notamment return $ret je pense ...


 
ben si, y'a un return, à la fin de sa fonction et le $ret est à l'intérieure de la chaîne retournée :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2000617
dexenium
Posté le 10-06-2010 à 17:27:11  profilanswer
 

Merci (à priori il manque rien dans la fonction)...
Que veut dire le .substr($ret,4)

n°2000618
stealth35
Posté le 10-06-2010 à 17:27:49  profilanswer
 

dexenium a écrit :

Merci (à priori il manque rien dans la fonction)...
Que veut dire le .substr($ret,4)


 
 
http://php.net/manual/fr/function.substr.php

n°2000621
dexenium
Posté le 10-06-2010 à 17:32:54  profilanswer
 

Citation :

Bilan des courses, cette fonction affiche une liste d'images avec leurs détails dans un html très douteux (utilisation de <br><br> à la place d'un <ul> et de <li> )...
 
Bref, du code à pas reprendre.


 
Arf exactement ce que je veux pas faire (les <br> c'est un peu caca  :lol: ) sinon je connais plutot bien les css mais php  :??:  
 
Bon comment modifier le truc pour avoir mon image et les détails en dessous car depuis hier je trifouille le code et à chaque fois tout plante :D  
 
Merci pour votre aide

n°2000627
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 10-06-2010 à 17:43:10  profilanswer
 

ah exact, rufo.
bin tu fais un <ul> et à chaque image trouvée, un <li> contenant un <span><img...></span> et ton texte</li>
puis un </ul> à la fin de toutes tes images.
Et en CSS, tu mets un display:block à ton li span, et tu mets un float et une largeur à ton li.


Message édité par NewsletTux le 10-06-2010 à 17:44:20

---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2000639
dexenium
Posté le 10-06-2010 à 18:15:01  profilanswer
 

Bon grace à vous j'ai mieux compris et j'ai réussi ma mise en page.
Par contre pour que tout s'affiche correctement j'ai du mettre à la fin  
 

Code :
  1. .substr($ret,0) ;


 
Est-ce correct, propre et sécure ? Puis je faire autrement ?

n°2000758
rufo
Pas me confondre avec Lycos!
Posté le 11-06-2010 à 09:34:58  profilanswer
 

dexenium a écrit :

Merci (à priori il manque rien dans la fonction)...
Que veut dire le .substr($ret,4)


 
Je te l'ai dis dans mon msg précédent : c'est pour ne pas afficher le 1er <br> de la chaîne $ret.
 
En mettant substr($ret,0); tu vas simplement afficher le 1er <br> en +, donc être $ret direct ou substr($ret,0);, ça revient au même sauf que la 2ième solution est complètement inutile :/


Message édité par rufo le 11-06-2010 à 09:36:10

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Explications sur une fonction php

 

Sujets relatifs
Temps d'attent avant d'appler un fonction PHPProblème pour créer une fonction sous excel
Odbc & php : construction de requête en fonction des variablesInitialisation dans une fonction d'une matrice de pointeur
Fonction mail PHP et paramétrage PHP.iniCast en pointeur pointant vers un pointeur de fonction
[résolu]fonction prenant en compte une url brute d'une image[résolu] modification du contenu d'une page en fonction d'un paramètre
Comment combiner la fonction somme et max sous accesExcel VBA Fonction Somme des (xi - yi)²
Plus de sujets relatifs à : Explications sur une fonction php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR