PHP Arrays
explode
<?php
$pizza = "anchois oignons tomate rucchetta";
$pieces = explode(" ", $pizza);
for($i=0;$i<count($pieces);$i++){
print("Pizza garniture " .($i+1) ."-- ".$pieces[$i]."<br>");
}
echo "<hr>";
show_source("explode.php");
?>
1 dimension
<?php
/* [[simplearray1dimension.php]] Script to highlight dynamically navigation link corresponding to the current page
#
# Authors:
# FR, radeff@akademia.ch
# History
# 2008/01/23 10:11: FR, created
#########
$array=array(
'nom',
'prenom',
'adresse',
'cp',
'ville',
'email',
'mobile'
);
$size=count($array);
for ($i=0; $i <= $size; $i++) {
echo $array[$i] . "<BR>";
}
?>
3 dim array with limesurvey
Un script pour faire un loop sur 3 arrays php, avec du mysql
exemple: renvoyer un message d'information suite à un limesurvey qui vise à s'inscrire à un séminaire pour lequel le nombre de place est limité - l'utilisateur inscrivant lui-même le nombre de places, le script suivant (url de sortie) calcule s'il a dépassé le nombre de places lors de son inscription.
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Confirmation</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?
error_reporting(E_ALL ^ E_NOTICE); //tests
/* var passed by lime */
$id=$_GET['var1'];
$sid=$_GET['var3'];
/* var to adapt */
/* nb of places by workshop*/
$nbplaces=25;
#$mailto="su@admin.org"; //test
$mailto="admin@admin.org"; //prod
$mailsubject="Tentative d'inscription infructeuse seminaire XXX";
$mailbody="Tentative d'inscription infructeuse pour: https://[limesurvey_url]/admin/admin.php?action=browse&sid=".$sid ."&subaction=id&id=".$id;
$ko="Malheureusement, la limite des " .$nbplaces ." personnes est dépassée. Veuillez s'il vous plait essayer de vous inscrire à une autre date.
En cas de problème, écrivez un e-mail à <a href=\"mailto:" .$mailto."\">" .$mailto."</a>";
/* arrays with items */
/*limesurveys id*/
$quiz=array(
"123",
"456",
"789"
);
/*dates*/
$quizlib=array(
"Vendredi 18 avril à 18h",
"Vendredi 18 avril 20h",
"Samedi 19 avril à 14h",
);
/*limesurvey answers*/
$quizanswer=array(
"123X3303X24965",
"456X3323X25163",
"789X3324X25169",
);
/*
#tests
echo "Total quiz id: " .count($quiz) ."<br>";
echo "Total quizlib: " .count($quizlib) ."<br>";
echo "Total quizansw: " .count($quizanswer) ."<br>";
*/
if(count($quiz)!=count($quizanswer)||count($quiz)!=count($quizlib)||count($quizanswer)!=count($quizlib)) {
echo "Bug on arrays count! Check"; exit;
}
#connect to database
include("connect.inc.php");
$db=connect_db();
$db_name=db_name();
mysql_select_db($db_name,$db);
#loop on arrays
for($i=0;$i<count($quiz);$i++) {
$sql="
SELECT id, SUM(".$quizanswer[$i] .") AS total
FROM `lime_survey_" .$quiz[$i] ."` ORDER BY id DESC
";
$sql2=mysql_query($sql);
if(!$sql2) {
echo mysql_error(); exit;
}
$sql2=mysql_result($sql2,0,'total');
if($sql2>=$nbplaces) {
echo $ko;
mail($mailto,$mailsubject,$mailbody); //send notification to admin
exit;
}
/*
#tests
echo "Quiz id: " .$quiz[$i]."<br>";
echo $quizlib[$i]."<br>";
echo "SQL:<br>".$sql."<br>";
echo "Total places:<br>".$sql2."";
echo "<hr>";*/
}
?>
<p>
Merci de votre inscription!<br />
<br />
Nous vous donnons donc rendez-vous le...<br />
<br />
Si vous avez des questions, n'hésitez pas à prendre contact avec ADMIN ou par e-mail à <a href="mailto:<? echo $mailto; ?>"><? echo $mailto; ?></a><br />
</p>
</pre>
</body>
</html>
n dimensions
<?php /* [[highlight_menu.inc.php]] Script to highlight dynamically navigation link corresponding to the current page # # Authors: # FR, radeff@akademia.ch # History # 2006: FR, created; modified 2008/01/21 22:01// ######### */ #affiche menus gauche (verticaux) function lemenugauche() { $cettePage= $_SERVER['REQUEST_URI']; //on teste pour voir sur quelle page on est $cettePage=ereg_replace("^.*/","",$cettePage); //nettoyage url /* //here some stuf if you want the current directory $cetURL= $_SERVER["REQUEST_URI"]; $cettePage=ereg_replace("^.*/","",$cetURL); //nettoyage url $ceRep=ereg_replace("^.*/(.*)/$cettePage$","\\1",$cetURL); //nettoyage url echo $cetURL; echo "<br>"; echo $ceRep; echo "<br>"; echo $cettePage; */ ?> <style type=" text/css "> /* classe spéciale pour highlighter un item du menu */ .active { color : #800000; font-weight : bold; text-decoration : underline; } </style> <? $menu=array( "Actualités"=>"/Actualites", "Espace Presse"=>"/Espace-Presse", "Recevoir de l'information" => "/Recevoir-de-linformation", "Liens" => "/cms/?/Liens" ); foreach($menu as $libelle_lien=>$url) { if(ereg($cettePage,$url) && strlen($cettePage)!=0) { //on met en valeur la page dans les menus SAUF pour la homepage $classemenuDeb="<span class=\"active\">"; $classemenuFin="</span"; } else { $classemenuDeb=""; $classemenuFin=""; } echo "<tr><td class=\"menu\"><a href=\"" .$url ."\" title=\"" .$libelle_lien ."\">" .$classemenuDeb .$libelle_lien .$classemenuFin ."</a></td></tr>\n"; } } lemenugauche(); #fin menus gauche ?>
array_splitter
<?
function array_splitter($delimiter, $string)
{
$array = explode($delimiter, $string);
#returns the number of elements in the array
$size=count($array);
for ($i=0; $i <= $size; $i++)
echo $array[$i] . "<BR>";
}
#Laurent Gottardo, 15.9.04
?>