Aller au contenu

ste

Hubmaster
  • Compteur de contenus

    167
  • Inscrit(e) le

  • Dernière visite

Messages postés par ste

  1. C'est parce que dans ton cas, tu as renseigné un nom de fichier,

    Or, dans ce cas-là, et s'il n'existe pas de chaine de destination, le fichier est sauvegardé en local.

    (lire pour cela la page sur la sortie Ouput de FPDF ... afin de mieux comprendre :P )

    Tout est de savoir où ? Certainement dans le même répertoire que ta classe FPDF...

  2. Bonjour,

    Je suis l'auteur du site suivant,, dans les sections j'ai un menu correspondant au nombre "d'articles", cf pour l'exemple ...

    Celui qui survole les liens de ce menu se rendra compte que les liens sont gérés ainsi :

    -http://nom_de_domaine.net/ecrit/section/0/15/titre/#titre

    Le problème de cette gestion est qu'un "article" peut avoir plusieurs URL.

    Ce que je voudrais arriver à faire est de gèrer un menu, si possible en PHP, qui me permette une gestion de "pages" et de "nombres de liens par page" (presque comme l'existant) sans les implémenter dans l'URL afin d'avoir une et une seule URL par "article".

    (-http://nom_domaine.net/ecrit/section/titre/#titre)

    (Très possible que je ne sois pas très clair, sur ce coup !)

    Bref, je ne vois pas comment réécrire un code en PHP.

    Quelle astuce puis-je utiliser pour garder une gestion de page et de nombres de liens par page sans l'implémenter dans l'écriture des URLs ?

  3. La sous-chaîne (substr) est effectivement plus rapide, mais cela présume que c'est toujours au même emplacement que se trouve la date.

    J'avais toutefois dit "... serait plus rapide ? A essayer !" C'était donc "sous réserve de vérification" ;)

    Si c'est toujours précédé par "fichier_" ... on est d'accord. Sinon, c'est peut-être plus rapide mais cela ne donnera pas la bonne valeur :whistling:

    Disons que la chaine de caractères précédant la date est connue et est toujours la meme...

    Néanmoins ta remarque sur la valeur retournée est exact au cas où ela chaine de caractères serait différente !

    merci à tous deux ...

  4. Peut-être que:

    $var=ereg_replace(".*_(.*)\.ext","\\1",$var);

    serait plus rapide ? A essayer !

    Dan

    meric, Dan...

    je penchais assez pour une solution de ce genre, mais je doutais ;)

    Et merci pour avoir supprimer le doublon involontaire !

    Si les dates sont toujours codees sur 6 chiffres, la methode suivante est plus rapide :

    $date = substr($var, 8, 6);

    (...)

    Et la proposition de Dan est plus lente que la formulation de depart :)

    Eh, beh là je suis bluffé ...

    je retiens ton petit script assez intéressant au demeurant.

    Ensuite que substr dans ce contexte soit plus rapide que ereg ne m'étonne pas ...

    D'autant que pour mémoire, le site php.net recommande justement d'utiliser de préférence les fonctions *str* que *reg* car moins gourmand en ressources.

    Un petit script en fournit une preuve ... chapeau !

  5. bonjour ...

    je cherche à améliorer un certain code php qui me fait un "tri" sur une chaine de caractères, qui se trouve être un nom de fichier.

    Le nom de fichier est écrit ainsi : fichier_AAAAMM.ext

    Le code que j'ai créé pour récupèrer la valeur AAAAMM est celui-ci (mais je le trouve trop lourd...) :

    $xploz = explode("_", $var); 
    $xplod = explode('.', $xploz[1]);
    $date = $xplod[0];

    Je suis sûr qu'il y a bien mieux (ayant peu dormi, j'ai du mal, j'avoue :P )

    N'est-ce pas ?

  6. Pour ton <a>, essaie plutot une synthaxe comme celle-ci :

    ...

    En fait, j'y suis arrivé avec cette syntaxe XSLT :

    <xsl:template match="info">
    => <a href="{url}" title="{nom}"><xsl:value-of select="nom"/></a><br />
    </xsl:template>

    :smartass:

    Maintenant, ma question est : si mon code XML est celui-ci :

    <info xlink:href="/changelog/">changelog</info>

    meme l'écriture que tu me donnes ne fonctionne pas puisque retourne une erreur Sablotron.

    comment je puis faire pour implémenter l'écriture XSLT afin d'avoir une restitution correcte de l'élément a ?!

  7. bonjour all,

    j'avoue avoir un peu de mal avec le traitement de fichier XML, XSLT ...

    Bref, j'ai un fichier XML :

    <?xml version="1.0" encoding="UTF-8"?>
    <distrib>
    <info>
    <nom>changelog</nom>
    <url>/changelog/</url>
    </info>
    <info>
    <nom>download</nom>
    <url>/download/</url>
    </info>
    <info>
    <nom>commander</nom>
    <url>http://ikarios.com/form#knoppix</url>
    </info>
    </distrib>

    voici le fichier XSL :

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="info">
    => <a href=""><xsl:value-of select="nom"/></a><br />
    </xsl:template>
    </xsl:stylesheet>

    le code PHP dont je me sers pour traiter les deux :

    		<p>
    <?php

    $xml_entry = xslt_create();
    $xml_out = xslt_process($xml_entry, XMLS.'/version.xml', XMLS.'/version.xsl');
    xslt_free($xml_entry);

    echo $xml_out;
    ?>
    </p>

    Mon premier soucis est qu'il me restitue la déclaration d'encodage xml ( <?xml version="1.0" encoding="UTF-8"?> ), juste avant le retour du flux xml ; résultat ma page xhtml est en erreur (cf la page de dev )

    Deuxième point, je n'arrive pas à intégrer le champ url dans le traitement xsl. Je ne vois vraiment pas comment faire.

    Merci par avance à ceux qui m'aideront. :P

  8. Bon, eh bien, j'y suis enfin arrivé à le faire fonctionner.

    Voici le code :

    function __delete_tmp($path)
    { //var_dump($path);
    chmod($path, 0777);
    $dir_tmp = opendir($path);

    /*** tant que la condition est juste en type alors on lit ***/
    while(false !== ($file_tmp = readdir($dir_tmp)))
    {
    if($file_tmp != '.' && $file_tmp != '..')
    {
    $path_tmp = $path.'/'.$file_tmp;

    if(!empty($path_tmp) && is_file($path_tmp))
    {
    unlink($path_tmp);
    }
    else
    {
    $this->__delete_tmp($path_tmp);
    }
    }
    }

    closedir($dir_tmp);
    rmdir($path);
    }

    Pour ceux qui se demandent ce que cela change au fond, j'ai usé dans ce script de variable normale et non de variable array ...

    ainsi la méthode fonctionne.

    Et, pour info, et pour répondre à Anonymous, l'usage d'une variable globale dans l'appel de la méthode n'est en rien génant.

    Une fois le script fonctionnel, j'ai testé avec et sans, et ça roule !!!

    ++

  9. D'un coté, tu as function __delete_tmp($path)

    et de l'autre, tu appelles : $this->__undelete_tmp(DIR.'/.')'

    Cherches tu au bon endroit ? ;)

    oui, oui ... enfin il me semble bien ...

    arfff, pardon : je l'appelle bien par $this->__delete_tmp(DIR.'/.')'; et non $this->__undelete_tmp(DIR.'/.'); :whistling:

  10. Bon, je me répons à moi-même :

    j'ai oublié de gérer les fichiers '.' et '..' et je ne retournais pas sur le bon répertoire !

    (erreurs de débutants ... tsss)

    le bon code est celui-ci :

    function __delete_tmp($path)
    {
    $this->dir = opendir($path);

    /*** tant que la condition est correct en type alors on lit ***/
    while(false !== ($this->file['del'] = readdir($this->dir)))
    {
    if($this->file['del'] != '.' && $this->file['del'] != '..')
    {
    $this->path = $path.'/'.$this->file['del'];

    if(is_dir($this->path))
    {
    $this->__delete_tmp($this->path);
    }
    else
    {
    unlink($this->path);
    }
    }
    }

    closedir($this->dir);
    rmdir($path);
    }

  11. Bonjour, all...

    je travaille sur un class dans laquelle j'implémente une méthode de destruction recursive qui me pose soucis à-priori :

    code de la méthode :

    function __delete_tmp($path)
    {
    $dir['tmp'] = dir($path);

    while($this->file['del'] = $dir['tmp']->read())
    {
    if(is_dir($this->file['del']))
    {
    $this->__delete_tmp($path.'/'.$this->file['del']);
    rmdir($this->file['del']);
    }
    else unlink($this->file['del']);
    }

    $dir['tmp']->close();
    }

    quand je l'appelle ainsi '$this->__undelete_tmp(DIR.'/.')' où DIR est une constante, il me retourne Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 3496 bytes) in /directory/script.php on line 125

    la ligne 125 étant $this->__delete_tmp($path.'/'.$this->file['del']); dans la condition if(is_dir(...))

    voili, voilou ... y'a certainement quelque chose qui cloche, mais là, je ne le vois pas.

    merci d'avance.

  12. En php, c'est quand même mieux :P

    déclare en début de page :

    <?php
    $date_du_jour = date("Ymd");
    ?>

    après à toi d'inclure la variable $date_du_jour au bon endroit dans ta page PHP (et non plus HTML, sinon ça ne fonctionnera pas), au moment de l'appel de ton script, du style :

    13h_<?php echo $date_du_jour; ?>.wmv

    Voilà, c'est une idée comme une autre ...

  13. Bonjour,

    je tatonne XML, tant bien que mal...

    j'ai réussi à créer une classe pour parser du XML en PHP, dont voici les sources.

    Ce que je ne comprends pas, et donc n'arrive pas à faire, et de parser le XML au final, non pas en echo, mais dans une variable multidimensionnelle, un tableau PHP...

    Des conseils, svp ?!

  14. Salut,

    Je cherche à analyser l'url ayant servie à accéder à une page afin de savoir s'il y a dedans un #nomDuneAncre à la fin.

    Et j'ai beau fouiller dans $_SERVER et consorts, je ne vois nulle part de #, même si j'en tape moi même dans l'url.

    Quelqu'un saurait comment récupérer ça, svp ?

    regarde du côté de la function parse_url en php !

  15. kikooo all

    j'ai un flux xhtml, auquel je cherche à détecter tous les liens pour leur appliquer un zeste de functions avant de les réinjecter dans le flux.

    mon code :

    function recodeURL($html) {
    preg_match_all('!href="(.+)"!isU', $str, $href);

    $this->xploz = explode('"', $href[0][1]);

           /*** traitement url ***/
    $url = parse_url($this->xploz[1]);
         
    if( !empty($url['user']) && !empty($url['password']) ) $url['xhtml2pdf']['user_pass'] = $url['user'].':'.$url['password'].'@';
    else $url['xhtml2pdf']['user_pass'] = '';
         
    $url['xhtml2pdf']['href'] = $url['scheme'].'://'.$url['xhtml2pdf']['user_pass'].$url['host'];
         
    if( !empty($url['path']) ) $url['xhtml2pdf']['href'] = $url['xhtml2pdf']['href'].$url['path'];
    if( !empty($url['query']) ) $url['xhtml2pdf']['href'] = $url['xhtml2pdf']['href'].'?'.urlencode($url['query']);
    if( !empty($url['fragment']) )  $url['xhtml2pdf']['href'] = $url['xhtml2pdf']['href'].'#'.$url['fragment'];
         
           /*** pattern ***/
    $search = '!href="(.+)"!isU';
    $replace = 'href="'.$url['xhtml2pdf']['href'].'"';

    $str = preg_replace($search, $replace, $str);
       return($str);
       
       unset($href, $url, $search, $replace);
       }

    sauf que dans l'état, la méthode prend la valeur de l'attribut href et la restitue à l'ensemble des liens qui peut exister dans mon flux html...

    au lieu d'appliquer celle qui correspond à son lien !

    J'ai certainement loupé quelque chose ... mais quoi ?!

  16. Tu as raison de mettre le tiret au début, c'est là qu'il faut le mettre.

    Par contre, il n'est pas utile de faire précéder le _ par un \ ... ce caractère n'ayant aucune signification particulière ;)

    Dan

    <{POST_SNAPBACK}>

    Dan, merci pour ces précisions ... je vais modifier en conséquence.

    Pour le caractère underscore, j'avais compris qu'il fallait l'échapper.

    Merci encore.

  17. Dans une règle de réécriture, le point (.) en premier argument correspond à n'importe quel caractère.

    Pour comparer avec un point décimal, il faut le faire précéder d'un backslash: \.

    Dan

    <{POST_SNAPBACK}>

    Dan, merci ... à ne pas me répondre, tu m'aurais étonné... l'est trop calé ce Dan ;)

    J'avais bien compris ce point ... sauf que quand je mets à la fin de l'expression, cela ne voulait pas fonctionner correctement - donc, je le mets en début de mon expression et ça marche :

    ([-\_\.a-zA-Z0-9]+)

  18. RewriteRule ^([-a-zA-Z]+)/([-a-zA-Z\.]+)/?$ index.php?variable1=$1 [L]

    Marche pas ça ??

    Quels sont les valeurs possibles des valeurUne et valeur1.2.3 ??

    <{POST_SNAPBACK}>

    Justement 'valeur1.2.3' peut être une valeur comportant un voire plusieurs '.' (points) !

    Et, apparement, tu as répondu à ma question ... merci.

  19. Salut

    Justement en UTF-8 non :huh: Et tant mieux d'ailleurs ..

    <{POST_SNAPBACK}>

    En effet, tu as raison, seulement la pratique m'a démontré que c'était préférable !

    Ca évite bien des soucis de sauvegarde et de lecture hors-ligne.

    Maintenant, après, ce que j'en dis...

×
×
  • Créer...