associer un code à une variable

Eléphant du PHP | 372 Messages

23 juil. 2015, 19:42

Salut j'ai un code que j'aimerais associer à une variable mais ca bloque:
Mon code:
echo '<strong>Jour:</strong><br><br>';
	
		//// Lundi
		$find_lundi   = '<img src="http://www.site.fr/img/1_on.gif" />';
		$pos = strpos($page, $find_lundi);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		if ($pos === false) {
			echo "";
		} else {
			echo "Lundi ";;
		}
		
		//// Mardi
		$find_mardi   = '<img src="http://www.site.fr/img/2_on.gif" />';
		$pos = strpos($page, $find_mardi);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		if ($pos === false) {
			echo "";
		} else {
			echo "Mardi ";;
		}
		
		//// Mercredi
		$find_mercredi   = '<img src="http://www.site.fr/img/3_on.gif" />';
		$pos = strpos($page, $find_mercredi);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		if ($pos === false) {
			echo "";
		} else {
			echo "Mercredi ";;
		}
	
		//// Jeudi
		$find_jeudi   = '<img src="http://www.site.fr/img/4_on.gif" />';
		$pos = strpos($page, $find_jeudi);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		if ($pos === false) {
			echo "";
		} else {
			echo "Jeudi ";;
		}
	  
	  	//// Vendredi
	  	$find_vendredi   = '<img src="http://www.site.fr/img/5_on.gif" />';
		$pos = strpos($page, $find_vendredi);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		// car la position de 'a' est la 0-ième (premier) caractère.
		if ($pos === false) {
			echo "";
		} else {
			echo "Vendredi ";;
		}
		
		//// Samedi
	  	$find_samedi   = '<img src="http://www.site.fr/img/6_on.gif" />';
		$pos = strpos($page, $find_samedi);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		// car la position de 'a' est la 0-ième (premier) caractère.
		if ($pos === false) {
			echo "";
		} else {
			echo "Samedi";;
		}
		
		//// Dimanche
	  	$find_dimanche   = '<img src="http://www.site.fr/img/7_on.gif" />';
		$pos = strpos($page, $find_dimanche);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		// car la position de 'a' est la 0-ième (premier) caractère.
		if ($pos === false) {
			echo "";
		} else {
			echo "Dimanche ";;
		}
Associer une variable afin de faire quelque chose du genre:
echo $jour_actif = Lundi, Mardi .....


Merci encore

Mammouth du PHP | 688 Messages

23 juil. 2015, 19:51

au lieu de faire un echo, tu ajoutes les valeurs dans un tableau, et tu fais un implode au final pour avoir la chaine voulue avec les ,

Eléphant du PHP | 372 Messages

23 juil. 2015, 20:33

un exemple ou un tuto svp ?

Genre pour l'array
$jour = array('1'=>'Lundi', '2'=>'Mardi', '3'=>'Mercredi', '4'=>'Jeudi', '5'=>'Vendredi', '6'=>'Samedi', '7'=>'Dimanche');

Mais après ... ?
//// Lundi
		$find_lundi   = '<img src="http://www.lesite.fr/img/1_on.gif" />';
		$pos = strpos($page, $find_lundi);
		
		// Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
		if ($pos === false) {
			echo "";
		} else {
			echo "Lundi ";;
		}

Eléphant du PHP | 243 Messages

23 juil. 2015, 20:52

Ou alors tu peux faire un truc plus simple :
$jour_actif = "";

//echo '<strong>Jour:</strong><br><br>';
  
    //// Lundi
    $find_lundi   = '<img src="http://www.site.fr/img/1_on.gif" />';
    $pos = strpos($page, $find_lundi);
    
    // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
    if ($pos === false) {
    } else {
      $jour_actif = $jour_actif."Lundi";
    }
    
    //// Mardi
    $find_mardi   = '<img src="http://www.site.fr/img/2_on.gif" />';
    $pos = strpos($page, $find_mardi);
    
    // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
    if ($pos === false) {
    } else {
      $jour_actif = $jour_actif.", Mardi";
    }
    
    //// Mercredi
    $find_mercredi   = '<img src="http://www.site.fr/img/3_on.gif" />';
    $pos = strpos($page, $find_mercredi);
    
    // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
    if ($pos === false) {
    } else {
      $jour_actif = $jour_actif.", Mercredi";
    }
  
    //// Jeudi
    $find_jeudi   = '<img src="http://www.site.fr/img/4_on.gif" />';
    $pos = strpos($page, $find_jeudi);
    
    // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
    if ($pos === false) {
    } else {
      $jour_actif = $jour_actif.", Jeudi";
    }
    
    	//// Vendredi
    	$find_vendredi   = '<img src="http://www.site.fr/img/5_on.gif" />';
    $pos = strpos($page, $find_vendredi);
    
    // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
    // car la position de 'a' est la 0-ième (premier) caractère.
    if ($pos === false) {
    } else {
      $jour_actif = $jour_actif.", Vendredi";
    }
    
    //// Samedi
    	$find_samedi   = '<img src="http://www.site.fr/img/6_on.gif" />';
    $pos = strpos($page, $find_samedi);
    
    // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
    // car la position de 'a' est la 0-ième (premier) caractère.
    if ($pos === false) {
    } else {
      $jour_actif = $jour_actif.", Samedi";
    }
    
    //// Dimanche
    	$find_dimanche   = '<img src="http://www.site.fr/img/7_on.gif" />';
    $pos = strpos($page, $find_dimanche);
    
    // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
    // car la position de 'a' est la 0-ième (premier) caractère.
    if ($pos === false) {
    } else {
      $jour_actif = $jour_actif.", Dimanche";
    }
echo $jour_actif;
C'est vrai qu'il y a plus propre comme code, mais les choses les plus simples sont souvent les meilleurs.
"Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent"
~~Lorenzo Strigini

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 juil. 2015, 09:54

Il y a effectivement des solutions plus propres et pas forcément plus compliqué. La difficulté ici serait de gérer le fait de ne pas commencer la chaine par une virgule si le lundi n'est pas sélectionné ;)

Pour reprendre et illustrer la suggestion de tof73 :
$jours = array(); // déclaration du tableau

   //// Lundi
    $find_lundi   = '<img src="http://www.site.fr/img/1_on.gif" />';
    $pos = strpos($page, $find_lundi);
    if ($pos !== false) { // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
      $jours[] = "Lundi"; // ajout du jour considéré dans le tableau
    }
    
    //// Mardi
    $find_mardi   = '<img src="http://www.site.fr/img/2_on.gif" />';
    $pos = strpos($page, $find_mardi);
    if ($pos !== false) { // Notez notre utilisation de ===.  == ne fonctionnerait pas comme attendu
      $jours[] = "Mardi";
    }
    
    // ...

    echo implode(', ', $jours); // affiche les données stockées dans le tableau $jours séparés par ", "
Nota : pour simplifier ton code au lieu de faire :

Code : Tout sélectionner

SI (test) ALORS rien SINON ALORS quelque chose
J'ai simplement inversé la condition :

Code : Tout sélectionner

SI (pas test) ALORS quelque chose
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...