Php

De wikilivois
Révision datée du 20 janvier 2018 à 10:28 par Christophe (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche


http://www.php.net

Les variables

8 types: bool,int,float,string,tableaux,objets,ressource,null

  • changer un type (cast) ou f° serttype()

tableaux

unset($arr[5]); // This removes the element from the array

unset($arr);    // This deletes the whole array
// Append an item (note that the new key is 5, instead of 0 as you might expect).
$array[] = 6;
count (array) donne le nombre d'elements d'un tableau

passer un tableau ds une fonction -> ok

passer des elements d'un tableau: f° implode & explode - voir aussi serialize

register_globals=On URL http://xxxxxx?nom= =>$nom=$_GET['nom'];

Variables d'environnement

getenv("PATH");
putenv("$PATH=");
attention à safe_mode_protected_env_vars qd safe_mode est activé.

/etc/php/apache2-php4/php.ini

Les structures de contrôle

if ($a > $b) {
   print "a est plus grand que b";
 } elseif ($a == $b) {
   print "a est égal à b";
 } else {
   print "a est plus petit que b";
}
for ($i = 1; $i <= 10; $i++) {
  echo $i;
}
foreach(array_expression as $value)
  commandes
foreach(array_expression as $key => $value)
  commandes
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
   $value = $value * 2;
   }
switch ($i) {
case 0:
   echo "i égale 0";
   break;
case 1:
  echo "i égale 1";
  break;
case 2:
  echo "i égale 2";
  break;
}

Traitement de texte

Formater des nombres

// Notation anglaise sans séparateurs des centaines
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
Sinon voir sprintf
substr(200504,0,4)=2005
substr(200504,4)=04

les expressions rationnelles

Ouvrir un fichier

$fd = fopen ("$dir/$file", "r");
while (!feof ($fd))
{
  $buffer = fgets($fd, 256);
  if (ereg("^([0-9]+):([0-9]+)",$buffer,$log)){$logperd[]=$log[2];};
}
fclose ($fd);

Remarque: exécuter une commande externe et récupérer son retour, c'est la même chose avec popen et pclose


Les fonctions, classes & objets

function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
  echo "Exemple de fonction.\n";
  return $retval;
}

Créer des graphes

graphes:

exemples:

  • /usr/lib/php/jpgraph/Examples/testsuit.php - liste d'exemples
  • /usr/share/doc/jpgraph-1.12.2/html/ - manuel et api
  • /var/www/www.livois.com/jpgraphdocs/

un premier fichier avec une ligne du type: <img src="fig1.php" border=0 align =center width=300 height= 200>

un fichier .php

$graph  = new Graph(300, 200,"auto");

The two first parameters specify the width and height of the graph the third parameter the name of the image file in the cache directory. The special name 'auto' indicates that the image file will begiven the same name as the image script but with the extension changed to indicate the graphic format used, i.e '.jpg', '.png' and so on. $gJpgBrandTiming=true ; -> affiche le temps de création de l'image.

Bases de données

interface avec bdd: adodb http://adodb.sourceforge.net/

include('/path/to/adodb.inc.php');
$DB = NewADOConnection('mysql');
$DB->Connect($server, $user, $pwd, $db)
# M'soft style data retrieval with binds
$rs = $DB->Execute("select * from table where key=?",array($key));
while (!$rs->EOF) {
  print_r($rs->fields);
  $rs->MoveNext();
}
# PEAR style data retrieval
$rs = $DB->Execute("select * from table where key=123");
while ($array = $rs->FetchRow()) {
  print_r($array);
}
$summary = $dbh->Execute("SELECT lognb,ftime,ltime FROM summary WHERE mid=$mid");
# Updating tables
$ok = $DB->Execute("update table set col1=? where key=?",array($colval, $key));
# retrieving data shortcuts
$val = $dbh->GetOne("select col from table where key='John'");
$row = $dbh->GetRow("select col from table where key='John'");
$arr = $dbh->GetAll("select col from table");
$arr = $dbh->GetAssoc("select key,col from table"); # returns associative array $key=>col