bibi

  • Signature
    commit suicide
  • Site web
  • Nombre de sujets
    77
  • Nombre de messages
    1 479
  • Nombre de commentaires
    9
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers sujets sur les forums

bibi
le 30/04/2010 à 09:51
Création de fichiers MHT
Hello hello,

Ca fait environ 10 ans que je suis pas venu sur ce site, donc j'espère que tout va bien par ici :)

Dans le cadre de mon stage, on m'a demandé de voir si on pouvait créer des fichiers MHT (http://en.wikipedia.org/wiki/MHTML) en php à partir d'une url.

Donc j'ai un peu farfouillé, et c'est pas forcément le truc le plus courant sur Terre, mais je suis tombé sur une classe qui fait environ ce que je veux à part 1 truc (de taille): Elle ne crée des MHT qu'à partir de fichiers locaux, pas d'une url.

Voici la librairie que j'utilise: http://www.lephpfacile.com/wall/wall-1893.php

Clairement, il semblerait que le problème, en tous cas le premier problème, vienne de la dernière fonction qui permet de récupérer le type mime. J'ai essayé avec un

$finfo = finfo_open(FILEINFO_MIME, $filename);
echo $finfo;
return $finfo;


Sauf que j'ai un léger souci, peut-être dû aux proxy la où je travaille.

Il faudrait donc que je crée une fonction du type GetFromURL($url).

Est-ce que vous connaitriez un moyen de créer des mht grâce à la classe COM (j'ai vu que c'était envisageable) ou à défaut, de m'aiguiller un poil, n'ayant que très peu de temps pour coder.

Merci d'avance,
Benjamin

PS: Voici le code que j'utilise qui fonctionne parfaitement en local mais pas avec une url

<?php

require_once 'mht.lib.php';

$file = new MhtFileMaker;

//$file->AddFile('http://www.google.fr/');

$file->SetBaseDir('');
$file->SetFirstPage('http://www.google.fr');
$file->AutoAddFiles();

$file->MakeFile('test.mht');


?>
commit suicide
bibi
le 16/09/2009 à 17:38
Décalage horaire dans mysql
Et oui me revoila !

En fait j'ai un léger soucis. J'enregistre des date au format datetime (j'ai aussi besoin de l'heure) sous mysql, aucun soucis.

Cependant, lorsqu'elle passe par UNIX_TIMESTAMP l'heure se prend -2heures.

Etant donné qu'on est encore à priori en heure d'été si je me trompe pas, on a 2 heures d'écart avec l'heure du soleil.

Sur 2 serveurs différent, j'ai exactement le meme résultat.

Une idée de comment gérer ça de façon dynamique selon le décalage horaire? Parce que bon si je fais un pauvre +2 et que tous les 6 mois faut mettre soit +1, soit +2 ...

Merci d'avance
commit suicide
bibi
le 18/04/2006 à 16:01
Mon captcha
Bon bah voila j'ai fait un petit captcha, c'est pas génial, c'est une fonction et pas une classe mais si ca peut aider des gens ...

http://www.pulsana.info/files/captcha.rar

Pour un exemple: http://www.pulsana.info/captcha/

vous pouvez changer la police dans la fonction generate_captcha(), la variable $font. Ne pas mettre l'extension '.ttf' .

J'ai pas encore réussi a implementer un reload si on distingue pas bien les caractères, mais rafraichissez la page ca suffit.

Voila bye
commit suicide
bibi
le 29/06/2005 à 19:30
class de Panier
Bon bah jme faisai un peu chier staprem alors j'ai fait une class de panier. Elle est pas exceptionnelle, mais ca pourra peut etre vous aider a comprendre comment ca fonctionne :).

Si c'est trop long, mettez le dans un wall :)



<?php

/**
Classe Panier
Benjamin SLAKMON - slak@wanadoo.fr
Création : 29/06/2005
Modification : 29/06/2005
*/



class Panier
{
var $panier = array();
var $error = array();
var $nbelts = 0;
var $nbproduits = 0;

/** Fonction permettant l'ajout d'un produit dans le panier
* @param id Identifiant du produit
* @param nb Nombre d'unités du produit que l'ont veut ajouter
* @param prix prix du produit
* @param descr description eventuelle du produit
*/
function Add($id=0,$nb=1,$prix='',$descr='Aucun description pour ce produit')
{
if($id > 0)
{
if($nb > 0)
{
if(isset($this->panier[$id]))
{
$this->panier[$id]['qte'] += $nb;
}
else
{
$this->panier[$id]['descr'] = htmlentities($descr);
$this->panier[$id]['qte'] = $nb;
$this->panier[$id]['prix'] = round($prix,2);
$this->nbproduits++;
}

$this->nbelts += $nb;

if($this->panier[$id]['qte'] <= 0)
{
return $this->Del($id);
}

return TRUE;
}
else
{
$this->error[] = 'Impossible d\'ajouter un nombre inférieur ou égal à 0 d\'objet (1)';
return FALSE;
}
}
else
{
$this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (1)';
return FALSE;
}
}

/** Fonction permettant d'enlever un nombre défini d'unités d'un produit
* @param id Identifiant du produit
* @param nb Nombre d'unités que l'ont veut enlever du produit id
*/
function Rem($id=0,$nb=1)
{
if($id > 0)
{
if(isset($this->panier[$id]))
{
if( ($this->panier[$id]['qte'] - $nb) <= 0)
{
return $this->Del($id);
}
else
{
$this->panier[$id]['qte'] -= $nb;
$this->nbelts -= $nb;
}

return TRUE;
}
else
{
$this->error[] = 'Ce produit n\'existe pas dans le panier (2)';
return FALSE;
}
}
else
{
$this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (2)';
return FALSE;
}
}

/** Fonction permettant de supprimer un produit du panier
* @param id Identifiant du produit
*/
function Del($id=0)
{
if($id > 0)
{
if(isset($this->panier[$id]))
{
$this->nbelts -= $this->panier[$id]['qte'];
unset($this->panier[$id]);
$this->nbproduits--;
return TRUE;
}
else
{
$this->error[] = 'Ce produit n\'existe pas dans le panier (3)';
return FALSE;
}
}
else
{
$this->error[] = 'L\'identifiant fourni en paramètre est invalide, il doit etre supérieur à 0 (3)';
return FALSE;
}
}
}
?>



Petite utilisation:

<?php

require_once 'class.Panier.php';

session_start();

if(!isset($_SESSION['panier']))
{
$_SESSION['panier'] = new Panier;
}

$_SESSION['panier']->Add(14,3,24.99,'Tour de 10 CD-R'); //Ajouter 3 objets '14' au panier

$_SESSION['panier']->Add(14,13,24.99,'Tour de 10 CD-R'); // Ajouter 13 objets '14" au panier. Il y en a donc 16 (13+3)

$_SESSION['panier']->Rem(14,4); // Enleve 4 objets 4 du panier, il en a donc plus que 12

$_SESSION['panier']->Add(12,1,8.99,'Les indestructibles');

$_SESSION->Del(14);

?>
commit suicide
bibi
le 02/05/2005 à 23:30
Classes & Sessions
Bonjour les gens, ca faisait relativement longtemps que je n'étais pas venu sur le forum mais la j'ai un ptit probleme . J'ai une classe "membre", que j'instancie quand le mec se log on, objet que je met dans une session comme ceci:

$_SESSION['infos_membre'] = new Membre($id);
je fais un print_r($_SESSION['infos_membre']);

et cela m'affiche :

membre Object
(
[num] => 1
[nom] => Traerin
[level] => 127
[mail] => slak@wanadoo.fr
[error] => Array
(
)

)


Donc ceci, sur la page de log on, donc tout marche bien . Maintenant, quand je vais sur une autre page et que je fais le meme print_r, voila ce que j'obtient :

[code]__PHP_Incomplete_Class Object
(
[__PHP_Incomplete_Class_Name] => membre
[num] => 1
[nom] => Traerin
[level] => 127
[mail] => slak@wanadoo.fr
[error] => Array
(
)

)[/code]

et je ne plus accéder à mes variables. Si qqn avait deja eu ce probleme ...

Merci d'avance
commit suicide
bibi
le 19/04/2005 à 17:39
regex et ATOM
Bonjour les gens . Ca fait un petit moment que je viens plus sur le site, trop a fond dans wow et dans mon stage :)

Je voulai faire un gestionnaire et afficheur de flux et donc je dois gérer tous les types de flux RSS mais la n'est pas le probleme. Lorsque le flux est de type ATOM, je dois catcher les <link ... > qui sont que de type text/html donc type="text/html"

voici a quoi ressemble une balise link
<link href="http://www.blogger.com/atom/6356614/108567929825946436" rel="service.edit" title="How to make a linkblog in Atom" type="application/atom+xml"/>
<link href="http://diveintomark.org/archives/2004/05/27/howto-atom-linkblog" rel="related" title="How to make a linkblog in Atom" type="text/html"/>


Le premier n'est pas a catché car il n'a pas le bon type, donc on doit prendre le 2eme . Mais le type="text/html" peut etre soit avant, soit apres le href et donc la se pose le probleme car je voudrais que s'il n'y est pas avant, il doit absolument y etre apres. J'ai donc regardé les sous-masques conditionnels et j'ai fait cette expression:

'/<link(.*)(type="text\/html")(.*) href="([^"]+)"(?(2)(.*)|(type="text\/html"))(\/?)>/i'


qui tourne avec un preg_match :

preg_match('/<link(.*)(type="text\/html")(.*) href="([^"]+)"(?(2)(.*)|(type="text\/html"))(\/?)>/i',$this->items[$i+1],$lien_atom);


Avec ceci:
<link href="http://www.blogger.com/atom/6356614/108567929825946436" rel="service.edit" title="How to make a linkblog in Atom" type="application/atom+xml"/>
<link href="http://diveintomark.org/archives/2004/05/27/howto-atom-linkblog" rel="related" title="How to make a linkblog in Atom" type="text/html"/>


Le tableau $lien_atom est vide.

Par contre , avec ceci :

<link rel="alternate" type="text/html" href="http://eurosport.tf1.fr/home/pages/v4/l3/s18/sport_lng3_spo18_sto709471.shtml">


le tableau ressemble a ca :

Array
(
[0] => <link rel="alternate" type="text/html" href="http://eurosport.tf1.fr/home/pages/v4/l3/s18/sport_lng3_spo18_sto709471.shtml">
[1] => rel="alternate"
[2] => type="text/html"
[3] =>
[4] => http://eurosport.tf1.fr/home/pages/v4/l3/s18/sport_lng3_spo18_sto709471.shtml
[5] =>
[6] =>
[7] =>
)


et donc tout fonctionne parfaitement.

J'espere avoir été clair

En gros, je voudrais que le premier exemple catch la ligne de link ou le type est text/html, comme dans le 2eme exemple meme si ce dernier ne comporte qu'une balise link

merci d'avance si vous avez eu la volonté d'arriver jusque la
commit suicide
bibi
le 04/04/2005 à 11:37
extends de class
En fait j'ai une class et je voudrais l'étendre donc mais eske je dois , dans la class fille, créer une variable qui contiendra l'objet de la classe mere ou alors quand j'appellerai le constucteur de la classe fille, ca appellera implicitement la classe mere.

Et pour les fonctions, en fait j'ai une fonction dans la classe mere et je voudrais faire la meme dans la fille mais en rajoutant d'autre trucs . Jsuis obligé de la récopier ou pas ??

merci
commit suicide
bibi
le 15/02/2005 à 20:00
Funny Bike
Bon é bé , une ptite soirée bien sympa avec :

-la globule
-Teeboh
-BJ ( alias Junior )
-Céka
-Jérém'
-Juju
-JC
-Greg
-Bogs
-Moi

Bon bah ct bien cool, jme suis viandé 2 fois dans la derniere session smiley
la globule a fait des super sessions, ceka kom dab, greg sa moto était froide au début mais apres ca allait, teeboh il allait vite mais il tombait tt le temps, bj il a voulai rentrer aux stands en plein milieu et pis euh les autres pas d'anecdotes

:)
commit suicide
bibi
le 02/02/2005 à 21:18
Firefox et MSN
Hello World !

Bon bah en fait firefox est mon explorer par défaut sur mon pc ca marche niquel sauf sous msn, ou ca m'ouvre IE ... Si quelqu'un pouvai m'aider ca serai cool
merci :)
commit suicide
LoadingChargement en cours