begin process at 2012 05 30 20:09:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

Modelisation d'une class avec les design pattern


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modelisation d'une class avec les design pattern

mardi 6 octobre 2009 à 14:19:59 | Modelisation d'une class avec les design pattern

devcphp12

Bonjour à tous,

j'ai crée differents fonctions qui me premettent tout de manipuler des fichiers afin de les transformer en pdf , jpg , tiff.

Après beaucoup de relecture des tutoriels de malaam concernant les design pattern et malgrès que mon code soit dejà fonctionnel, je voulais essayer de m'en inspiré , histoire d'essayer d'evoluer et de progesser ( aille ca va etre dure !!).

Comment modelisé ce que je souhaite faire .
Mon code fonctionnel est le suivant :




function CreationCheminAbsoluPourDosEnregistrementImage($sChemin){
static $sIntermittent,$sCheminProtege;

$sIntermittent=str_replace('\\','"\"',$sChemin); #1
$sCheminProtege='"'.$sIntermittent.'"';
unset($sIntermittent);
return $sCheminProtege;
}

/** Pour transformer un fichier .doc en fichier . pdf **/
function CreationCheminAbsoluPourDos($sChemin){
static $sIntermittent,$sCheminProtege;

$sIntermittent=str_replace('\\','"\"',$sChemin);


$sCheminProtege='"'.$sIntermittent.'"';
unset($sIntermittent);
return $sCheminProtege;

function SaveAllDocToPdf ($sPathToStore){


static $aMyArray=array();


if (is_dir($sPathFinal)===TRUE) {
wb_message_box($window, $sPathFinal,"ceci est bien un dossier",WBC_INFO);
**/
if ($pDirectory = opendir($sPathToStore)) { // opendir nous renvoit un pointeur sur le dossier
// on initiliase

while (false !== ($sFile = readdir($pDirectory))){

//je ne dois convertir que les fichiers .doc en .pdf car il se peut qu'il y ait des fichiers .pdf
//$sExtensionFile renvoit une chaine de carctere ie doc ou pdf ou jpg
$sExtensionFile=pathinfo($sFile,PATHINFO_EXTENSION);

if ($sFile != "." && $sFile != "..") {
if ($sExtensionFile =="doc"){

wb_set_text($iStatusBar,'Conversion de '.$sFile.' en pdf');
$aMyArray[]=$sFile;

}

}

}// fin du while
closedir($pDirectory);// je ferme le handle de manipulation du dossier qui contient les cartes ernt

}else{
wb_message_box($window,'Listage des fichiers impossible','Répertoire illisible',WBC_INFO);
}

foreach ($aMyArray as $sValeur){
SaveAsPdf ($sPathToStore.'\\'.$sValeur);
}
unset($aMyArray);


}else{
wb_message_box($window, $sPathFinal.'n\'est pas un dossier ','Dossier invalide',WBC_INFO);
}**/

}

function SaveAsPdf ($sFichierAsauver){

global $sCheminScriptVbConvertToPdf;
static $sFichier;

if(file_exists($sFichierAsauver)===FALSE){
wb_message_box($window,'Le fichier '.$sFichierAsauver.' à transformer en pdf n\'existe pas. ','Transformation en Pdf', WBC_INFO);
return FALSE;
}else{

$sFichier=CreationCheminAbsoluPourDos($sFichierAsauver);
// for debug wb_message_box($window,'Fichier apres conversion Dos '.$sFichier.' ','Transformation en Pdf', WBC_INFO);
exec($sCheminScriptVbConvertToPdf." ".$sFichier);
unset($sFichier);
return TRUE;
}

}

function SaveAsPng ($sFichierAsauver){

global $sCheminScriptVbConvertToPng;
static $sFichier;

$sFichier=CreationCheminAbsoluPourDosEnregistrementImage($sFichierAsauver);
exec($sCheminScriptVbConvertToPng." ".$sFichier);
unset($sFichier);
return TRUE;

}

function SaveAsTiff($sFichierAsauver){

global $sCheminScriptVbConvertToTiff;
static $sFichier;

$sFichier=CreationCheminAbsoluPourDosEnregistrementImage($sFichierAsauver);
exec($sCheminScriptVbConvertToTiff." ".$sFichier);
unset($sFichier);
return TRUE;

}
function SaveAsJpg($sFichierAsauver){

global $sCheminScriptVbConvertToJpg;
static $sFichier;

$sFichier=CreationCheminAbsoluPourDosEnregistrementImage($sFichierAsauver);
exec($sCheminScriptVbConvertToJpg." ".$sFichier);
unset($sFichier);
return TRUE;

}
function SaveAsBmp($sFichierAsauver){

global $sCheminScriptVbConvertToBmp;
static $sFichier;

$sFichier=CreationCheminAbsoluPourDosEnregistrementImage($sFichierAsauver);
exec($sCheminScriptVbConvertToBmp." ".$sFichier);
unset($sFichier);
return TRUE;

}

je pensais utilisé des
interface Sauvegarde{
public function Save($sFichierASauver)
}
class Sauve implements Sauvegarde{
public function Save($sFichierASauver)


}

mais comment definir mes autres fonctions ??

merci d'avance por vos propositions
vendredi 9 octobre 2009 à 00:55:32 | Re : Modelisation d'une class avec les design pattern

neigedhiver

Salut,

J'espère que t'as compris les tutos de Malalam, parce que moi, j'ai pas compris ce que tu veux faire concrètement ;)
Du coup, je ne sais pas trop quoi te répondre à part ça, en espérant que tu pourras donner plus de précisions...

Désolé pour ce message qui ne répond pas au tien, mais tu attends déjà depuis 2 jours, tu risques d'attendre encore plus si personne ne comprend vraiment ce que tu veux faire exactement (parce que les tutos de Malalam sur les motifs de conceptions, ben... on peut en faire des choses avec !)


--
Neige

N'hésitez pas à lire la doc
lundi 19 octobre 2009 à 15:59:35 | Re : Modelisation d'une class avec les design pattern

devcphp12

Alors voici ma classe reecrite completement en suivant pas mal de tuto de malalam :
<?php
/** future fichier de dll pour les operations avec pdf creator
@version 2.0.2: passage en modele objet
la methode CreationCheminAbsoluPourDos devient CreationCheminAbsoluPourDosEnregistrementImage
la methode CreationCheminAbsoluPourDos est maintenant reservé pour la preparation des noms de fichiers des documents word
@todo: mettre ne place un message d'avertissement avec la fonction exec de php
**/

global $sCheminScriptVbConvertToPdf,$sCheminScriptVbConvertToPng,$sCheminScriptVbConvertToTiff,$sCheminScriptVbConvertToJpg,$sCheminScriptVbConvertToBmp;

interface PreparationFichier {
public static function CreationCheminAbsolu ( MainPdfCreator $oMainPdfCreator );
}

if (TRUE === interface_exists('PreparationFichier')){

class CreationCheminAbsoluPourDosEnregistrementImage {
//expication: lorsque le chemin vers le fichier.doc contient des espaces, pdf creator ne trouve pas le chemin
//en effet, nous utilisons pdf creator en mode dos ou com, et dos n'accepte pas les espaces dans les chemins
// le chemin vers le fichier à sauvegarder doit arriver sous la forme D:\\Azura Cd Diagnostic\\Analysimmo\\2009\\aout\\VIGIGNE Dominique 93\\VIGIGNE Dominique 93 18.08.09 ERNT.doc
//on remplace alors les \ par "\" voir #1
//solution il faut protéger les espaces tel que $s='"F:"\"Azura Cd Diagnostic"\"help.doc"';
public static function CreationCheminAbsolu( MainPdfCreator $oMainPdfCreator ){
static $sIntermittent,$sCheminProtege;

$sIntermittent=str_replace('\\','"\"',$oMainPdfCreator->sFichierASauver); #1 //permet d'écrire $s sous la forme F:"\"Azura Cd Diagnostic"\"help.doc
$sCheminProtege='"'.$sIntermittent.'"';
unset($sIntermittent);
return $sCheminProtege;
}
}

class CreationCheminAbsoluPourDos {
/** Pour transformer un fichier .doc en fichier . pdf avec pdfcreator en mode dos , celui doit etre passé à pdfcreator sous la forme
*
* or le logiciel nous le renvoit sous la forme D:\\Azura Cd Diagnostic\\Analysimmo/2009/aout/VIGIGNE Dominique 93/VIGIGNE Dominique 93 18.08.09 ERNT.doc
* d'ou #1 on transforme en "D:"\"Azura Cd Diagnostic"\"Analysimmo/2009/aout/VIGIGNE Dominique 93/VIGIGNE Dominique 93 18.08.09 ERNT.doc
* et en # 2 on transforme en "D:"\"Azura Cd Diagnostic"\"Analysimmo"\"2009"\"aout"\"VIGIGNE Dominique 93"\"VIGIGNE Dominique 93 18.08.09 ERNT.doc
**/
public static function CreationCheminAbsolu( MainPdfCreator $oMainPdfCreator ){
static $sIntermittent,$sCheminProtege;

$sIntermittent = str_replace('\\','"\"',$oMainPdfCreator->sFichierASauver); #1
//$sIntermittentFinal=str_replace('/','"\"',$sIntermittent); #2 inutile depuis que que la methode CreationCheminSauvegarde utilise les \\ ce qui permet de directement renvoyer sous D:\\Azura Cd Diagnostic\\Analysimmo\\2009\\aout\\VIGIGNE Dominique 93\\VIGIGNE Dominique 93 18.08.09 ERNT.doc
//$sCheminProtege='"'.$sIntermittentFinal.'"';
//unset($sIntermittent,$sIntermittentFinal);

$sCheminProtege='"'.$sIntermittent.'"';
unset($sIntermittent);
return $sCheminProtege;
}
}

}else{
wb_message_box($window,'L\'interface PreparationFichier n\'existe pas','Erreur Code',WBC_WARNING);
}





interface TransformationFichier {
public static function SaveAs(MainPdfCreator $oMainPdfCreator);
}
if (TRUE === interface_exists('TransformationFichier')){

class SaveAsPdf implements TransformationFichier {

public static function SaveAs(MainPdfCreator $oMainPdfCreator){

exec($sCheminScriptVbConvertToPdf." ".$oMainPdfCreator->sTempFichier);
return TRUE;


}
}

class SaveAsPng implements TransformationFichier {
public static function SaveAs ( MainPdfCreator $oMainPdfCreator ){

exec($sCheminScriptVbConvertToPng." ".$oMainPdfCreator->sTempFichier);
return TRUE;

}
}
class SaveAsTiff implements TransformationFichier{
public static function SaveAs( MainPdfCreator $oMainPdfCreator ){

exec($sCheminScriptVbConvertToTiff." ".$oMainPdfCreator->sTempFichier);
return TRUE;

}
}
class SaveAsJpg implements TransformationFichier {
public static function SaveAs( MainPdfCreator $oMainPdfCreator ){

exec($sCheminScriptVbConvertToJpg." ".$oMainPdfCreator->sTempFichier);
return TRUE;

}
}
class SaveAsBmp implements TransformationFichier {
public static function SaveAs( MainPdfCreator $oMainPdfCreator ){

exec($sCheminScriptVbConvertToBmp." ".$oMainPdfCreator->sTempFichier);
return TRUE;


}
}
}else{// fin de test de notre interface
wb_message_box($window,'L\'interface TransformationFichier n\'existe pas','Erreur de code',WBC_WARNING);
}




class PdfCreator {

/** hack PHP Notice: Undefined index: pFichierASauver
* on definit une valeur par default à $pFichierASauver bien qu'il sera accédé par l'utilisateur avec le biais de la mtehode magique __set
**/



private $aProprietes = array ( 'pFichierAsauver' => array('NomVariable'=>'sFichierASauver','Type'=>'is_file','settable'=>TRUE) // file_exists est utilisé uniquement pour savoir si un fichier ou un dossier existe
);

private $aTypeEnregistrementPossible = array ( 'Pdf','Jpg','Tiff','Bmp','Png');
private $sTempFichier;

public function __construct(){
}

/**La méthode magique __set() permet de faire ce que l'on appelle de la surchage de propriétés d'une classe. En effet, lorsque l'on essaie de fixer la valeur d'une propriété inexistante de la classe, PHP appelle automatiquement cette méthode de manière implicite
* @param string $sProp Nom de la propriété
* @param mixed $mVal Valeur à affecter à la propriété
* @return void
*/
public function __set($sProp, $mVal) {
if(!array_key_exists($sProp, $this->aProprietes) || !isset($this->aProprietes[$sProp]['settable']) || false === $this->aProprietes[$sProp]['settable'] || !isset($this->aProprietes[$sProp]['Type'])) {
wb_message_box($window,'Propriétès non disponible à l\'accession','Erreur Code',WBC_WARNING);
}
$sFunc = $this->aProprietes[$sProp]['Type']; // $this->aCor$this->aProprietes[$sProp]['type'] nous renvoit la fonction is_int ou is_string
if(!$sFunc($mVal)) { // equivalent à is_file($mVal)
wb_message_box($window,'Le fichier à transformer n\'existe pas','Erreur Code',WBC_WARNING);
}
$sThisProp = $this->aProprietes[$sProp]['NomVariable'];
$this->$sThisProp = $mVal; // equivaleent à $this->sFichierASauver = $mVal ou mVal est un chemin vers le fichier à transformer
}


public function EffectueTransformation($sType){

if(!is_string($sType)){
wb_message_box($window,'Le format final souhaitée n\'a pas été défini','Erreur Code',WBC_WARNING);
}
if(!array_key_exists($sType,$this->aTypeEnregistrementPossible)){
wb_message_box($window,'Le format final souhaitée n\'existe pas','Erreur Code',WBC_WARNING);
}
switch($sType){
case 'Tiff':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsTiff::SaveAs($this)){
wb_message_box($window,'Sauvegarde de'.$this->sFichierASauver.' en Tiff','Opération Effectuée',WBC_WARNING);
}
break;
case 'Png':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsPng::SaveAs($this)){
wb_message_box($window,'Sauvegarde de'.$this->sFichierASauver.' en Png','Opération Effectuée',WBC_WARNING);
}
break;
case 'Pdf':
$this->sTempFichier = CreationCheminAbsoluPourDos::CreationCheminAbsolu($this);
if(TRUE === SaveAsPdf::SaveAs($this)){
wb_message_box($window,'Sauvegarde de'.$this->sFichierASauver.' en Pdf','Opération Effectuée',WBC_WARNING);
}
break;
case 'Bmp':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsBmp::SaveAs($this)){
wb_message_box($window,'Sauvegarde de'.$this->sFichierASauver.' en Bmp','Opération Effectuée',WBC_WARNING);
}
break;
case 'Jpg':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsJpg::SaveAs($this)){
wb_message_box($window,'Sauvegarde de'.$this->sFichierASauver.' en Jpg','Opération Effectuée',WBC_WARNING);
}
break;
default : //devrait etre court-circuité par le test du array key exists
wb_message_box($window,'Le format final souhaitée n\'existe pas','Erreur Code',WBC_WARNING);
break;
}// fin du switch
}

function __destruct(){
// on remet à zero le tableau
reset($this->aProprietes);

}
}
?>

pour l'utiliser je fais juste un
$oManipulateurFichier = new PdfCreator;
$oManipulateurFichier->pFichierASauver = (string) $sPdfToTransformImage;

ou $sPdfToTranformImage correspond à C:\Mes Images\ à un chemin vers le fichier à transformer

$oManipulateurFichier->EffectueTransformation('Jpg');

Mais voici les jolies messages que je recois :

PHP Notice: Undefined index: pFichierASauver in D:\Developpement\Winbinder\WinBinder\phpcode\Ernt\Data\Dll\PdfCreator.dll on line 138
[19-Oct-2009 15:44:35] PHP Fatal error: Function name must be a string in D:\Developpement\Winbinder\WinBinder\phpcode\Ernt\Data\Dll\PdfCreator.dll on line 139

1 : j'ai beau essayé de definir un tableau mais toujours undefined index.
La deuxieme je ne comprends pas car j'ai meme forçé avec string mais j'obtiens toujours ce message d'erreur.

Votre aide me serait precieuse .
D'avance merci
mercredi 21 octobre 2009 à 15:47:28 | Re : Modelisation d'une class avec les design pattern

devcphp12

Pour terminer , voici ma classe finale qui marche :

class PdfCreator {

/** hack PHP Notice:
* on definit une valeur par default à $sFichierASauver bien qu'il sera accédé par l'utilisateur avec le biais de la mtehode magique __set
**/


public $sFichierASauver = ''; //si on ne definit pas cette variable on obtient l'erreur suivante proprietés non disponible à l'accession
//puis ceci PHP Notice: Undefined index: sFichierASauver in D:\Developpement\Winbinder\WinBinder\phpcode\Ernt\Data\Dll\PdfCreator.dll on line 144
//[20-Oct-2009 22:04:33] PHP Fatal error: Function name must be a string in D:\Developpement\Winbinder\WinBinder\phpcode\Ernt\Data\Dll\PdfCreator.dll on line 145

public $aProprietes = array ( 'pFichierASauver' => array('NomVariable'=>'sFichierASauver','Type'=>'is_file','settable'=>TRUE) // file_exists est utilisé uniquement pour savoir si un fichier ou un dossier existe
);

private $aTypeEnregistrementPossible = array ('Pdf'=>'Fichier que l\'on souhaite transformer en pdf',
'Jpg'=>'Fichier que l\'on souhaite transformer en Jpg',
'Tiff'=>'Fichier que l\'on souhaite transformer en Tiff',
'Bmp'=>'Fichier que l\'on souhaite transformer en Bmp',
'Png'=>'Fichier que l\'on souhaite transformer en Png'
); // en effet la methode array_key_exists exige que pur chaque clef correpsonde une valeur
public $sTempFichier;

public function __construct(){
}

/**La méthode magique __set() permet de faire ce que l'on appelle de la surchage de propriétés d'une classe. En effet, lorsque l'on essaie de fixer la valeur d'une propriété inexistante de la classe, PHP appelle automatiquement cette méthode de manière implicite
* @param string $sProp Nom de la propriété
* @param mixed $mVal Valeur à affecter à la propriété
* @return void
*/
public function __set($sProp, $mVal) {
if(!array_key_exists($sProp, $this->aProprietes) || !isset($this->aProprietes[$sProp]['settable']) || false === $this->aProprietes[$sProp]['settable'] || !isset($this->aProprietes[$sProp]['Type'])) {
wb_message_box($window,'Propriétès non disponible à l\'accession','Erreur Code',WBC_WARNING);
}
$sFunc = $this->aProprietes[$sProp]['Type']; // $this->aCor$this->aProprietes[$sProp]['type'] nous renvoit la fonction is_int ou is_string
if(!$sFunc($mVal)) { // equivalent à is_file($mVal)
wb_message_box($window,'Le fichier à transformer n\'existe pas','Erreur Code',WBC_WARNING);
}
$sThisProp = $this->aProprietes[$sProp]['NomVariable'];
$this->$sThisProp = $mVal; // equivaleent à $this->sFichierASauver = $mVal ou mVal est un chemin vers le fichier à transformer
}


public function EffectueTransformation($sType){

if(!is_string($sType)){
wb_message_box($window,'Le format final souhaitée n\'a pas été défini','Erreur Code',WBC_WARNING);
}
elseif(!array_key_exists($sType,$this->aTypeEnregistrementPossible)){
wb_message_box($window,'Le format final souhaitée n\'existe pas','Erreur Code',WBC_WARNING);
}else{
switch($sType){
case 'Tiff':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsTiff::SaveAs($this)){
wb_message_box($window,'Sauvegarde de '.$this->sFichierASauver.' en Tiff','Opération Effectuée',WBC_WARNING);
}
break;
case 'Png':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsPng::SaveAs($this)){
wb_message_box($window,'Sauvegarde de '.$this->sFichierASauver.' en Png','Opération Effectuée',WBC_WARNING);
}
break;
case 'Pdf':
$this->sTempFichier = CreationCheminAbsoluPourDos::CreationCheminAbsolu($this);
if(TRUE === SaveAsPdf::SaveAs($this)){
wb_message_box($window,'Sauvegarde de '.$this->sFichierASauver.' en Pdf','Opération Effectuée',WBC_WARNING);
}
break;
case 'Bmp':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsBmp::SaveAs($this)){
wb_message_box($window,'Sauvegarde de '.$this->sFichierASauver.' en Bmp','Opération Effectuée',WBC_WARNING);
}
break;
case 'Jpg':
$this->sTempFichier = CreationCheminAbsoluPourDosEnregistrementImage::CreationCheminAbsolu($this);
if(TRUE === SaveAsJpg::SaveAs($this)){
wb_message_box($window,'Sauvegarde de '.$this->sFichierASauver.' en Jpg','Opération Effectuée',WBC_WARNING);
}
break;
default : //devrait etre court-circuité par le test du array key exists
wb_message_box($window,'Le format final souhaitée n\'existe pas','Erreur Code',WBC_WARNING);
break;
}// fin du switch
}//fin du else
}

function __destruct(){
// on remet à zero le tableau
reset($this->aProprietes);

}
}

par contre je suis tres decue de ce code.en effet, il est une replique de la classe PHPDRAW 2 de malalam à ceci pret que j'ai du redefinir mes proprietes en public alors que lui le fait en private.

D'autre part, a partir du moment ou ils sont en private, php genere des erreurs absurdes tel que :
PHP Fatal error: Cannot access private property PdfCreator::$sFichierASauver in D:\Developpement\Winbinder\WinBinder\phpcode\Ernt\Data\Dll\PdfCreator.dll on line 26

PHP Fatal error: Function name must be a string in D:\Developpement\Winbinder\WinBinder\phpcode\Ernt\Data\Dll\PdfCreator.dll on line 145

et des que je remets certaines variables en public plus aucun probleme § c'est vraiment à n'y rien comprendre.

Aidez moi à comprendre le raisonnement ?
Merci
mercredi 21 octobre 2009 à 17:51:13 | Re : Modelisation d'une class avec les design pattern

neigedhiver

Salut,

C'est tout à fait normal : seules les propriétés publiques sont accessibles depuis l'extérieur de la classe.
Les propriétés "protected" sont accessibles depuis la classe et dans n'importe quelle classe qui hérite cette classe.
Quand aux propriétés "private", elles ne sont accessibles que dans la classe qui les définit.
Il n'y a rien à comprendre, à part ça : c'est fait comme ça, pour fonctionner comme ça, et c'est bien ce qui se passe avec ta classe.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)


Cette discussion est classée dans : function, static, pdf, sfichier, sfichierasauver


Répondre à ce message

Sujets en rapport avec ce message

Explication sur function [ par philposer ] Bonjour (bonsoir) à tous, je viens de tomber sur quelque chose d'un peu particulier en analysant le framework fuel-php et malgré la doc PHP je ne com Decouper fichier PDF [ par olman74 ] Bonjour, Pour un projet, j'ai besoin de decouper un fichier pdf en plusieurs fichiers pdf d'une page. Savez vous si une librairie PHP existe pour ce FTP GET windows7 [ par lesly75 ] Bonjour à tous Voici mon problème ... Mon besoin, récupérer un fichier sur le serveur FTP(windows NT) de mon hébergeur (Amen) pour l'avoir sur mon p Problème errer Parse error: syntax [ par Denzel68 ] Bonjour voila je se petit script php qui fonctionne très bien en local mais qu'en je le mais sur le server ftp le site ne marche plus et il me trouve php notification message [ par oussch ] bonjour je realise mon pfe avec php j'arrive a afficher les nbres des notifications et j'ai besoin de connaitre comment faire apres pour accede a ces je veux une correction de mon code php [ par karimxx5 ] <?php mysql_connect("localhost","root",""); mysql_select_db("map"); $a=$_POST['latti']; $b=$_POST['longi']; $a1=$a+0.0001; $a2=$a-0.0001; $b1=$b+0.000 Grand probleme [ par karouani ] Bonjour --- mon prb est resume dans : 1: Flux rss 2: SLIDER BON je veux inserer les images vient de flux rss dans mon slider mon probleme c'est Call to undefined function: () [ par koko ] Fatal error: Call to undefined function: () in e:\program files\easyphp\www\pseudoframe\index.php on line 28 voici l'erreur que j'ai... la function fa Doc to PDF en PHP ? [ par Joez ] Voila je veux faire un script qui permet de transformer un fichier Word ou excel en PDF avec PHP ?c'est possible ? Si oui comment ? Thx class,PDF,XLS et boucles..... [ par booth ] bonjour!j'ai un méga problème...je dois générer un PDF et une grillle excel toutes deux issues d'un moteur de recherche...pour le moteur de recherche


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales