| |
|
Fonctions php Dans cette page on va tenter de présenter
les fonctions php like gérées par
le serveur ssarah. Ces fonctions actuellement en phase de developpement et d'extension,
subissent des tests et des optimisations. Les modification sont encore fréquentes.
Un appercu du code est présenté sur les page de test, qui fonctionnent bien.
On tentera de completer puis de garder cette page à jour.
[printfile]
<[printfile]> <file>nomfichier</file>
Ouvre le fichier nomfichier en mode lecture puis l'envoie au client.
[getfpost]
<[getfpost]> <nf>nf</nf> <var>string</var> <cd>bool</cd>
Recupère dans string les données d'un champ nf d'un formulaire POST.
Si le champ nf n'existe pas bool vaut FALSE sinon bool vaut TRUE.
Le paramètre <cd></cd> est optionnel
[printvar]
<[printvar]> <var>string</var>
Imprime le contenu de la variable string.
[getnbreq]
<[getnbreq]> <var>string</var>
Recupère le nombre de requête que ssarah a recu dans la variable string.
Le format de sortie est [million.unité]
ex : 12.000009 équivaut à 12 millions et neuf requêtes.
[strcat]
1) <[strcat]> <vard>stringA</vard> <vars>stringB</vars>
Ajoute à la chaine stringA, le contenue de la variable stringB. Si
stringA contient "Bonjour" et la chaine stringB contient "tout le monde", cette fonction
aboutit à une chaine stringA contenant "Bonjour tout le monde", et une chaine stringB
contenant "tout le monde".
2) <[strcat]> <vard>stringA</vard> <strs>tout le monde</strs>
Ajoute à la chaine stringA, la chaine "tout le monde". Si
stringA contient "Bonjour" cette fonction
aboutit à une chaine stringA contenant "Bonjour tout le monde"
[freestr]
<[freestr]> <var>string</var>
Vide à la chaine string. Si
string contient "Bonjour", cette fonction
aboutit à une chaine string vide.
[getclientip]
<[getclientip]> <var>string</var>
Ajoute l' ip address du client à la variable string.
[ifstreq]
1) <[ifstreq]><vara>stringA</vara><varb>stringB</varb><cd>bool</cd>
Compare le contenu de la variable stringA au contenu de la variable stringB,
si les contenus sont égaux alors bool vaut TRUE sinon bool vaut FALSE.
2) <[ifstreq]><vara>stringA</vara><strb>untexte</strb><cd>bool</cd>
Compare le contenu de la variable stringA à "untexte", si le contenu de la variable
strinA est "untexte" bool vaut TRUE sinon bool vaut FALSE.
[ifstrempty]
<[ifstrempty]><var>string</var><cd>bool</cd>
Si la chaine string est vide bool vaut TRUE sinon bool vaut FALSE.
[ifpost]
<[ifpost]><cd>bool</cd>
Si la page est appelé par la méthode POST bool vaut TRUE sinon bool vaut FALSE.
[strlen]
<[strlen]><var>string</var><ivar>int</ivar>
Cette fonction met dans la vaiable integer "int" la taille de la variable chaine "string".
[substr]
<[substr]><vars>stringA</vars><vard>stringB</vard> <il>2</il><iw>5</iw>
Cette fonction met dans la vaiable stringB une sous chaine de la variable stringA
commencant à la position 2 et de taille 5. La balise <il> peut etre remplacer par
la balise <ivl> qui designe une variable integer et la variable <iw> peut aussi
etre remplacer par <ivw> pour designer une variable integer.
[ifa=b]
<[ifa=b]><ivara>intA</ivara><ivarb>intB</ivarb><cd>bool</cd>
Si les deux variables intA et intB sont égales bool vaut TRUE sinon bool vaut FALSE.
la balise <ivarb> peut être remplacer par <intb> pour designer un chiffre.
[ifa>b]
<[ifa>b]><ivara>intA</ivara><ivarb>intB</ivarb><cd>bool</cd>
Si la variable integer intA est supérieure intB bool vaut TRUE sinon bool vaut FALSE.
la balise <ivarb> peut être remplacer par <intb> pour désigner un chiffre.
[ifa<b]
<[ifa<b]><ivara>intA</ivara><ivarb>intB</ivarb><cd>bool</cd>
Si la variable integer intA est inférieure intB bool vaut TRUE sinon bool vaut FALSE.
la balise <ivarb> peut être remplacer par <intb> pour désigner un chiffre.
[ifa>=b]
<[ifa>=b]><ivara>intA</ivara><ivarb>intB</ivarb><cd>bool</cd>
Si la variable integer intA est supérieure ou égale à intB bool vaut TRUE sinon bool vaut FALSE.
la balise <ivarb> peut être remplacer par <intb> pour désigner un chiffre.
[ifa<=b]
<[ifa<=b]><ivara>intA</ivara><ivarb>intB</ivarb><cd>bool</cd>
Si la variable integer intA est inférieure ou égale à intB bool vaut TRUE sinon bool vaut FALSE.
la balise <ivarb> peut être remplacer par <intb> pour désigner un chiffre.
[seta=b]
<[seta=b]><ivara>intA</ivara><ivarb>intB</ivarb>
Met la valeur de la variable intB dans la variable intA.
la balise <ivarb> peut être remplacer par <intb> pour designer un chiffre.
[seta=b+c]
<[seta=b+c]><ivara>intA</ivara><ivarb>intB</ivarb><ivarc>intC</ivarc>
Met le resultat de intB + intC dans la variable intA.
la balise <ivarc> peut être remplacer par <intc> pour designer un chiffre.
[seta=b-c]
<[seta=b-c]><ivara>intA</ivara><ivarb>intB</ivarb><ivarc>intC</ivarc>
Met le resultat de intB - intC dans la variable intA.
la balise <ivarc> peut être remplacer par <intc> pour designer un chiffre.
[seta=b*c]
<[seta=b*c]><ivara>intA</ivara><ivarb>intB</ivarb><ivarc>intC</ivarc>
Met le resultat de intB * intC dans la variable intA.
la balise <ivarc> peut être remplacer par <intc> pour designer un chiffre.
[gethost]
<[gethost]><var>string</var>
Ajoute a la variable string le nom de domaine.
[getfget]
<[getfget]> <nf>nf</nf> <var>string</var> <cd>bool</cd>
Recupère dans string les données d'un champ nf d'une méthode GET.
Si le champ nf n'existe pas bool vaut FALSE sinon bool vaut TRUE.
Le paramètre <cd></cd> est optionnel
[strtoint]
<[strtoint]> <ivar>int</ivar> <var>string</var> <cd>bool</cd>
Essaies de transformer le contenu de la variable string en integer, si la transformation est réussie bool vaut TRUE
sino bool vaut FALSE et la variable int vaut zero.
[inttostr]
<[inttostr]> <ivar>int</ivar> <var>string</var>
Ajoute le contenu de la variable integer int à la variable string.
[a++]
<[a++]> <ivar>int</ivar>
Augmente d'une unité la variable integer int.
[a--]
<[a--]> <ivar>int</ivar>
Diminue d'une unité la variable integer int.
[calle]
<[calle]> <name>name</name>
Execute un fichier externe dont le nom est name.
les fichiers appelés par calle se trouvent dans un folder [whomeconf] inaccessible au public.
Alors que [printfile] lit les fichiers du folder [whome] et ne les executent pas.
[getdate]
<[getdate]> <var>string</var>
Recupère la date sous forme [Thu Feb 16 17:29:23 2006] est l'ajoute à la variable string.
Cette fonction est appele à évoluer.
[string]
<[string]> <a>stringA</a> <b>stringB</b> <c>stringC</c>
Déclare un stringA, stringB et stringC comme string. Cette declaration est obligatoire avant utilisation.
On peut déclarer jusqu'à 7 string sur une seul ligne, de la balise <a> à la balise <g>.
Le nom d'une variable ne peut exceder 20 caractères, sinon seul les premiers 20 caractères seront pris.
Une variable déclarée est visible dans tout le script.
[integer]
<[integer]> <a>intA</a> <b>intB</b> <c>intC</c>
Déclare un intA, intB et intC comme integer. Cette declaration est obligatoire avant utilisation.
On peut déclarer jusqu'à 7 integer sur une seul ligne, de la balise <a> à la balise <g>.
Le nom d'une variable ne peut exceder 20 caractères, sinon seul les premiers 20 caractères seront pris.
Une variable déclarée est visible dans tout le script.
[bool]
<[bool]> <a>boolA</a> <b>boolB</b> <c>boolC</c>
Déclare un boolA, boolB et boolC comme boolean. Cette declaration est obligatoire avant utilisation.
On peut déclarer jusqu'à 7 boolean sur une seul ligne, de la balise <a> à la balise <g>.
Le nom d'une variable ne peut exceder 20 caractères, sinon seul les premiers 20 caractères seront pris.
Une variable déclarée est visible dans tout le script.
[addcode]
<[addcode]> <name>name</name>
Déclare une procédure entre [addcode] et [endcode].
Toutes les lignes entre ces deux balises sont sauvegardées. Ces lignes sont executées si la procedure est appelée
dans le script. Pour appeler la procédure cf [execode], alors que [exitcode] interrompe l'execution de la procedure.
Le nom d'une procédure ne peut exceder 20 caractères, sinon seul les premiers 20 caractères seront pris.
[execode]
<[execode]> <name>name</name> <ivnb>nb</ivnb>
Exécute une procedure externe dont le nom est name, nb fois.
Pendant l'execution si le programme rencontre la balise [exitcode], l'execution de la procédure est interrompue
immédiatement. Une procédure peut appeler une autre procédure, mais pas la même procédure,
la recursivité n'est pas autorisée. Les diffèrentes procédures appelées l'une par l'autre
ne peuvent pas créer un cercle recursive non plus. Une pile des procédures en cours d'éxecution
empêche les appels recursifs.
la balise <ivnb> peut être remplacer par <inb> pour designer un chiffre.
28/10/2006 : execode peut maintenant transmettre des variables à la procédure
(ou fonction). Pour cela il faut ajouter le paramètre <[v]> puis les variables sous formes
[vvara ou vara ou stra jusqu'au vvarc, varc et strc], dans la fonction cible, ces variables seront recupérées
sous forme [$vara_nom_de_la_fonction jusqu'a $varc_nom_de_la_fonction]. C'est variables sont globeaux.
ex1 :
<[execode]><name>name</name> <inb>1000</inb> <ifn>boolA</ifn>
<[execode]><name>name</name> <inb>10</inb> <ify>boolA</ify>
Dans cet exemple la procédure "name" est executée 1000 fois si boolA vaut FALSE sinon elle est executée 10 fois.
Pendant l'execution de la procédure si le programme rencontre [exitcode] l'execution de la procédure est interrompue.
ex2 :
<[addcode]><name>name</name>
../
<[ifa=b]><ivara>nbrow</ivara> <intb>5</intb> <cd>boolA</cd>
<[exitcode]><ify>boolA</ify>
<[a++]><ivar>nbrow</ivar>
/..
<[endcode]>
Dans cet exemple la procédure "name" ne sera jamais executée plus de 4 fois, si la valeur de départ de nbrow est zero.
[cdif]
<[cdif]> <ifya>boolA</ifya> <ifnb>boolB</ifnb> <cd>boolC</cd>
Cette fonction met boolC à TRUE si boolA est TRUE et boolB est FALSE.
Cette fonction accepte 7 boolean de la balise <ifya> à la balise <ifyg> et de la <ifna>
à la balise <ifng>.
[strbetab]
<[strbetab]> <vars>vars</vars><vard>vard</vard><stra>stra</stra> <strb>strb</strb><ivar>ivar</ivar>
Cette fonction cherche dans la chaine [vars] un substring situé entre [stra] et [strb], et met le resultat dans [vard].
Si ivar est présente, elle met dans ivar la taille de substring trouvé.
les variables peuvent etre remplacer [vars par vvars], [vard par vvard], [stra par vara ou vvara] et [strb par varb ou vvarb]
[setmstr]
<[setmstr]> <mstr>mstra</mstr><int>9</int><str>untext</str>
Met la chaine untext dans le tableau de chaine mstra à la dixième place. La balise int peut être remplacer par
une ivar, et str peut être remplacer par var ou vvar.
[mstradd]
<[mstradd]> <mstrd>mstra</mstrd><str>untext</str>
Ajoute la chaine untext dans le tableau de chaine mstra en dernière position.
La balise str peut être remplacer par var ou vvar.
[getmstrlen]
<[getmstrlen]> <mstr>mstra</mstr><ivar>ivara</ivar>
Met dans ivara la taille du tableau mstra.
[printmstr]
<[printmstr]> <mstr>mstra</mstr><int>9</int><sep><br></sep>
Imprime la 10eme ligne du tableau mstr. Si int vaut -1, cette fonction imprime toutes les lignes
du tableau mstr separées par le contenu de la balise [int], un saut de ligne dans notre exemple.
La balise [int] peut être remplacée par [ivar] et [sep] par [vvsep ou vsep].
[substrreplace]
<[substrreplace]> <var>vara</var><strd>strd</strd><strs>strs</strs>
Si la chaine strd est presente dans la variable vara, la fonction la remplace
par la chaine strs. Cette fonction remplace une seule occurence, la première.
Les balises var, strs et strd, peuvent être remplacées par (vvar pour var), (vars, vvars pour strs) et (vard, vvard pour strd).
[setbetab=c]
<[setbetab=c]> <vard>vard</vard><vars>vars</vars><stra>stra</stra>
<strb>strb</strb><strc>strc</strc>
Cette fonction remplace dans [vars] la chaine entre les balises [stra] et [strb] par la chaine [strc] et
met le resultat dans [vard]. Apres le passage de cette fonction [vard] contiendra une copie modifiée de [vars].
Si [vard] et [vars] pointent sur la meme variable, la fonction remplace le contenu de cette variable
par une copie modifiée. Les balises vard, vars, stra, strb et strc, peuvent être remplacées
par (vvard pour vard), (vvars pour vars), (vara, vvara pour stra), (varb, vvarb pour strb) et
(varc, vvarc pour strc). si [ivar] est presente elle contiendra la taille de la chaine [vard]. Si [cd]
est presente elle vaudra true si la fonction reussi.
[trimstr]
<[trimstr]> <vard>vard</vard>/font>
Cette fonction enlàve les espaces + tabulations et les sauts de ligne (byte 13 et byte 10) qui se trouve en debut
et en fin de la chaine [vard]. Si [ivar] est presente, elle contiendra apres le passage de la fonction
la taille de la chaine finale.
[mkdir]
<[mkdir]> <fld>WWW</fld><dir>repa</dir>
Cett foction crée le repertoire repa dans la racine du web. Si [fld] vaut CONF, repa est créer dans
la racine des [pcode] qui est un dossier non public et non visible par les internautes. Cette fonction
ne crée pas les repertoires intermediaires s'ils n'existent pas, par ex si [dir] vaut repa/repb/repc et si
repb n'existe pas cette fonction reste sans effet.
Les balises dir et fld, peuvent être remplacées par (vvdir, vdir pour dir) et (vvfld, vfld pour fld).
[rmdir]
<[rmdir]> <fld>WWW</fld><dir>repa</dir>
Supprime le repertoire repa dans la racine du web. [fld] peut être [WWW ou CONF].
Cette fonction ne supprime pas un repertoire non vide.
Les balises dir et fld, peuvent être remplacées par (vvdir, vdir pour dir) et (vvfld, vfld pour fld).
[unlink]
<[unlink]> <fld>WWW</fld><file>filea</file>
Supprime le fichier filea repa dans la racine du web. [fld] peut être [WWW ou CONF].
Les balises file et fld, peuvent être remplacées par (vvfile, vfile pour file) et (vvfld, vfld pour fld).
[strtobyte]
<[strtobyte]> <var>vara</var><ivar>ivara</ivar> <cd>boola</cd>
Met dans ivara la valeur du caractere present dans vara. Si vara contient plus d'un
caractere, l'operation echoue. Si vara ne contient aucun caractere, l'operation echoue.
Si l'operation reussi boola vaut true sinon boola vaut false .
La balise var peut être remplacée par (vvar pour str).
[datetime]
<[datetime]> <d>vara</d><m>varb</m> <G>varc</G>
Met dans vara la date du jour (01-31) du serveur, dans varb la date du mois (01-12) et dans
varc l'année (yyyy). Les differents paramètres sont les suivants :
d = day of month (01-31)
G = année (yyyy)
H = heure (01-23)
I = hour (01-12)
j = day of year (001-366)
m = mois (01-12)
M = minute (01-59)
S = seconde (01-59)
les majuscules et minuscules doivent être respectées. Dans cet exemple
un tiret est ajouté devant le nom de la fonction pour qu'elle
ne soit pas executé par le serveur, cet exemple affichera la date du jour sous forme "Le jj/mm/aaaa"
<[string]> <a>stra</a>
<[strcat]> <vard>stra</vard> <strs>Le </strs>
<[datetime]> <d>stra</d>
<[strcat]> <vard>stra</vard> <strs>/</strs>
<[datetime]> <m>stra</m>
<[strcat]> <vard>stra</vard> <strs>/</strs>
<[datetime]> <G>stra</G>
<[printvar]> <var>stra</var>
Les balises
<ify>
et <ifn> peuvent conditionner l'execution de toutes les fonctions ici présente,
ce qui permet de creer une infinité de possibilité avec ces quelques fonctions. Ainsi le forum du site
n'a utilisé qu'une quinzaine de ces fonctions primitives associées à 5 fonctions ttoufic pour la gestion de
database.
Ce site
fonctionne depuis le novembre 2004 avec les produits qu'on developpe, entre autre
un serveur web , un serveur cpanel - like et des fonctions php like et mysql like.
Copyright © 2005 Dr Mteyrek Mohamad All rights reserved
|
|