Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > Vos Fonctions ou astuces > Lecture du sujet

Vos Fonctions ou astuces

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  44  45  46  47  48  49  50  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  44  45  46  47  48  49  50  ...  97  98  99  100  Suivante
Hors ligne Asi # Posté le 08/03/2007 à 22:56:15
Mangeur de Lapins Crus
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Citation : Yondaime
Le $i ne sert à rien, il suffit de faire $retour_array[] = ..


Je sais que le [$i] sert à rien, j'ai vu ça en relisant ma fonction, j'ai dû la faire après une autre ou j'en avais besoin... (Je vais l'enlever pour te faire plaisir)

Citation : Yondaime
Et pour éviter le cas que tu cites, y a toujours les itérateurs :p


Pas compris :)
 
Hors ligne nax # Posté le 08/03/2007 à 22:58:30
Avatar
Groupe : Membres
Pour générer une miniature :

Code : PHP

<?php
function resize($from, $dossier, $nom)
{
        $ext = $from;
        $ext = substr($ext,strrpos($ext,".")+1);
        $ext = strtolower($ext);
        if($ext == 'jpg' or $ext == 'jpeg')
                $source = imagecreatefromjpeg($from); // On crée par une jpg
        elseif($ext == 'png')
                $source = imagecreatefrompng($from); // un png
        elseif($ext == 'gif')
                $source = imagecreatefromgif($from); // un gif
       
        // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
        $largeur_source = imagesx($source);
        $hauteur_source = imagesy($source);
        $largeur_destination = 100; // on peut choisir la largeur que l'on veut
        $hauteur_destination = 100 * $hauteur_source; // la hauteur est obtenue pour garder les proportions
        $hauteur_destination = $hauteur_destination / $largeur_source;
        $hauteur_destination = round($hauteur_destination);

        $destination = imagecreatetruecolor($largeur_destination, $hauteur_destination); // On crée la miniature vide
       
        // On crée la miniature
        imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
       
        // On enregistre la miniature
        if(strrchr($nom,".") == ".jpg" OR strrchr($nom,".") == ".jpeg")
                imagejpeg($destination, $dossier . $nom);
        if(strrchr($nom,".") == ".png")
                imagepng($destination, $dossier . $nom);
        if(strrchr($nom,".") == ".gif")
                imagegif($destination, $dossier . $nom);
}
?>


$from est l'url du fichier de départ
$dossier le dossier de destination (chmod 777)
$nom, le nom de la miniature, penser à unigid()
 
Hors ligne anonyme # Posté le 08/03/2007 à 23:02:17
Groupe :
Citation : Asibasth
Citation : Yondaime
Le $i ne sert à rien, il suffit de faire $retour_array[] = ..


Je sais que le [$i] sert à rien, j'ai vu ça en relisant ma fonction, j'ai dû la faire après une autre ou j'en avais besoin... (Je vais l'enlever pour te faire plaisir)

Citation : Yondaime
Et pour éviter le cas que tu cites, y a toujours les itérateurs :p


Pas compris :)


Les itérateurs, c'est un truc cool de PHP 5. Avec PHP 5, foreach peut accepter un objet comme argument, et les classes possèdent 5 méthodes "magique" : current, key, next, rewind et valid.

http://frederic.bouchery.free.fr/?2004/11/01/30-Creer-Un-Iterateur-Avec-Php5

En résumé, tu passes la ressource à l'instanciation de la classe, et avec foreach, tu parcoureras toutes les lignes de ta ressource en évitant de faire deux boucles (l'exemple avec mysqli est assez parlant).

Ca permet d'éviter de devoir faire ce que tu fais :)
Hors ligne Savageman # Posté le 08/03/2007 à 23:50:02
Insa : If inside
Avatar
Groupe : Membres
... on va laisser tomber, j'arrive en retard, j'avais lu la page en cache...
Édité le 08/03/2007 à 23:51:05 par Savageman
 
Hors ligne GuGus963 # Posté le 09/03/2007 à 00:05:33
Pour la connaissance libre !
Avatar
Groupe : Membres

Trier un tableau dans l'ordre alphabétique, avec insensibilité à la casse :



Code : PHP
function isort(&$array) {
        $func = create_function('$a,$b', '$a = strtolower($a);
        $b = strtolower($b);
        if($a > $b) return 1;
        elseif($a == $b) return 0;
        else return -1;'
);
        usort($array, $func);
}


Code : PHP
$a = array('Damien', 'albatros', 'Bernard', 'chien');
sort($a);
foreach($a as $v) echo $v.'<br/>';


Cela affichera :

Code : Autre
Bernard
Damien
albatros
chien


Tandis que

Code : PHP
$a = array('Damien', 'albatros', 'Bernard', 'chien');
isort($a);
foreach($a as $v) echo $v.'<br/>';


Cela affichera :

Code : Autre
albatros
Bernard
chien
Damien


Obtenir la couleur inverse (pour une image par exemple)



Code : PHP
function colorInvOf($number, $fromBase = 10) {
        if(is_array($number)) $number = arrayColorToInt($number);
        if($fromBase != 10) $number = base_convert($number, $fromBase, 10);
        $r = 255-($number >> 16) & 0xFF;
        $g = 255-($number >> 8) & 0xFF;
        $b = 255-$number & 0xFF;
        $dec_new = $r << 16;
        $dec_new += $g << 8;
        $dec_new += $b;
        return $dec_new;
}


Cette fonction utilise la fonction :

Code : PHP
function arrayColorToInt($array_colors, $toBase = 10) {
        list($r, $g, $b) = $array_colors;
        $dec = $r << 16;
        $dec += $g << 8;
        $dec += $b;
        if($toBase != 10) $dec = base_convert($dec, 10, $toBase);
        return $dec;
}


Et pour les exemples :

Code : PHP
function intToArrayColor($number, $fromBase = 10) {
        if($fromBase != 10) $number = base_convert($number, $fromBase, 10);
        $r = ($number >> 16) & 0xFF;
        $g = ($number >> 8) & 0xFF;
        $b = $number & 0xFF;
        return array($r, $g, $b);
}


Voici un exemple :

Code : PHP
$couleur_array = array(255, 40, 127); //les couleurs rgb de la couleur (dans l'ordre : rouge, vert, bleu)
$couleur_dec = arrayColorToInt($couleur_array); //16722047

list($r, $g, $b) = $couleur_array;

$couleur_inv_dec = colorInvOf($couleur_dec); //55168
$couleur_inv_array = intToArrayColor($couleur_inv_dec); //les couleurs rgb de la couleur inverse (dans l'ordre rouge vert bleu)

list($r_inv, $g_inv, $b_inv) = $couleur_inv_array;

echo "<span style=\"color:rgb($r, $g, $b);\">salut</span><br/>\n";
echo "<span style=\"color:rgb($r_inv, $g_inv, $b_inv);\">salut</span><br/>";


Ceci affiche :

Code : HTML
<span style="color:rgb(255, 40, 127);">salut</span><br/>
<span style="color:rgb(0, 215, 128);">salut</span><br/>


Cela peut paraître compliqué, mais ça ne l'est pas :X
 
Hors ligne A-spec59 # Posté le 09/03/2007 à 00:39:56
Réfléchissez !
Avatar
Groupe : Membres
Citation : Arnaud
Pour générer une miniature :

...
Bien mais imagecopyresampled créé une image miniaturisée certes, mais qui est des fois plus lourde que l'image non miniaturisée. Donc moi je préfère repasser un coup par dessus avec les fonctions pour créer des images à partir d'autre, en prenant comme source l'image miniaturisée.

Edit : euh GuGus963 t'aurais pas réinventé "la roue" ????
Édité le 09/03/2007 à 00:44:11 par A-spec59

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter
What I can do
 
Hors ligne NL # Posté le 09/03/2007 à 00:44:06
Avatar
Groupe : Membres
Citation : GuGus963

Trier un tableau dans l'ordre alphabétique, avec insensibilité à la casse :




Mouais, en même temps, y a plus simple hein ^^

Code : PHP
<?php

$tableau = array('Damien', 'albatros', 'Bernard', 'chien');
$tableau_minuscules = array_map('strtolower', $tableau);

array_multisort($tableau_minuscules, SORT_ASC, SORT_STRING, $tableau);

echo '<pre>';
print_r($tableau);
echo '</pre>';

?>


Qui affiche :

Code : Autre
Array
(
    [0] => albatros
    [1] => Bernard
    [2] => chien
    [3] => Damien
)


Pour peu que tu crées une fonction qui prend en argument le tableau, tu peux le faire plus simplement, avec gestion de l'ordre de tri :

Code : PHP
function tri_array($tableau, $ordre)
{
    $tableau_minuscules = array_map('strtolower', $tableau);
        if($ordre == 'asc')
                return array_multisort($tableau_minuscules, SORT_ASC, SORT_STRING, $tableau);
        else
                 return array_multisort($tableau_minuscules, SORT_DESC, SORT_STRING, $tableau);
}


Edit : A-spec59, je la connaissais pas celle-là, elle est encore plus simple vu qu'elle est insensible à la casse, mais tu peux pas sélectionner l'ordre de tri, non ?
Édité le 09/03/2007 à 01:03:23 par NL

Rêve de Plume ouvre enfin ses portes :)
 
Hors ligne GuGus963 # Posté le 09/03/2007 à 00:45:39
Pour la connaissance libre !
Avatar
Groupe : Membres
Voici mon script pour miniaturiser ;) :

Code : PHP
<?php
//MINIATURISER AVEC UN POURCENTAGE
function miniaturePercent($source, $mimetype = null, $pourcentage = 80) {
        if($pourcentage == 0) {
                $pourcentage = 1;
        }
        if(is_file($source) && in_array($mimetype, array('png', 'gif', 'jpeg', 'jpg'))) {
                $mimetype = 'imagecreatefrom'.str_replace('jpg', 'jpeg', $mimetype);
                $source = $mimetype($source);
        }
        elseif(is_resource($source) && @get_resource_type($source) == 'gd') {
                //ok
        }
        else {
                return false;
        }
        $pourcentage = 1/$pourcentage*100;
        $sourceX = imagesx($source);
        $sourceY = imagesy($source);
        $miniatureX = round($sourceX/$pourcentage, 0);
        $miniatureY = round($sourceY/$pourcentage, 0);
        $miniature = imagecreatetruecolor($miniatureX, $miniatureY);
       
        imagecopyresampled(
                $miniature,
                $source,
                0,
                0,
                0,
                0,
                $miniatureX,
                $miniatureY,
                $sourceX,
                $sourceY
        );

        return $miniature;
}

//MINIATURISER AVEC LARGEUR ET/OU HAUTEUR EN PIXELS (meilleure méthode en général)
function miniaturePx($source, $mimetype = null, $XY) {
        if(is_file($source) && in_array($mimetype, array('png', 'gif', 'jpeg', 'jpg'))) {
                $mimetype = 'imagecreatefrom'.str_replace('jpg', 'jpeg', $mimetype);
                $source = $mimetype($source);
        }
        elseif(is_resource($source) && @get_resource_type($source) == 'gd') {
                // ok
        }
        else {
                return false;
        }
        $sourceX = imagesx($source);
        $sourceY = imagesy($source);
        if(is_array($XY)) {
                $miniatureX = (isset($XY['x'])) ? round($XY['x'], 0) : null;
                $miniatureY = (isset($XY['y'])) ? round($XY['y'], 0) : null;
                if($miniatureX == null && $miniatureY == null)  {
                        return miniaturePercent($source, $mimetype, 80);
                }
                elseif($miniatureX == null) {
                        $percent = $miniatureY/$sourceY;
                        $miniatureX = round($sourceX*$percent, 0);
                }
                elseif($miniatureY == null) {
                        $percent = $miniatureX/$sourceX;
                        $miniatureY = round($sourceY*$percent, 0);
                }
                $miniature = imagecreatetruecolor($miniatureX, $miniatureY);
               
                imagecopyresampled(
                        $miniature,
                        $source,
                        0,
                        0,
                        0,
                        0,
                        $miniatureX,
                        $miniatureY,
                        $sourceX,
                        $sourceY
                );
               
                return $miniature;
        }
        else {
                return false;
        }
}

imagepng(miniaturePx(
        'FichierQuelconque (ou resource image).gif', //nom du fichier. Cela peut également être un resource d'image
        'gif', //le type du fichier (vous pouvez mettre null si le premier paramètre est une resource d'image
        array('x'=>500) //un tableau contenant soit : x et y, la largeur et hauteur de l'image, soit seulement x, calcule automatiquement la valeur en y, et inversement.
));

//avec miniaturePercent

imagejpeg(miniaturePx(
        'MonFichier.png', //nom du fichier. Cela peut également être un resource d'image
        'png', //le type du fichier (vous pouvez mettre null si le premier paramètre est une resource d'image
        70 //le pourcentage de miniaturisation (vous bien sur agrandir l'image avec 150, 200, 500... attention à la lenteur !)
));
?>
Édité le 09/03/2007 à 00:47:14 par GuGus963
 
Hors ligne A-spec59 # Posté le 09/03/2007 à 01:04:09
Réfléchissez !
Avatar
Groupe : Membres
NL => Ravi de t'avoir appris quelque chose, à vrai dire je ne connaissais pas non plus avant, mais il me semblait déjà avoir vu cette fonction quelque part. Apparemment on ne peux pas définir l'ordre de tri, mais inversé les résultats ne doit pas être bien dur (de là à en faire une fonction, je sais pas si c'est nécessaire)

Edit : pour inverser le tableau mais en gardant la correspondance clé/valeur : krsort
Édité le 09/03/2007 à 01:05:53 par A-spec59

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter
What I can do
 
Hors ligne DHKold # Posté le 09/03/2007 à 01:39:55
Ex-Admin
Avatar
Groupe : Membres
A-spec59 > Euh non, krsort, ca trie un tableau dans l'ordre inverse, !== renverser un tableau ^^

Pour renverser un tableau: array_reverse

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne GuGus963 # Posté le 09/03/2007 à 02:05:14
Pour la connaissance libre !
Avatar
Groupe : Membres
Mon nouveau format d'image : j'ai nommé le format PXC (PiXel Color).
(interdit de se moquer :p ).

Code : PHP
function imagecreatefrompxc($filename) {
        $pxcContent = file_get_contents($filename);
        if($pxcContent[0] == '0') {
                $pxcContent = substr($pxcContent, 1);
                $pxcContent = bzDecompress($pxcContent);
        }
        $separator = $pxcContent[0];
        $pxcContent = substr($pxcContent, 1);
        $pxcContent = explode("\n", $pxcContent);
        list($xMax, $pxcContent[0]) = explode($separator, $pxcContent[0], 2);
        $base = (ord($separator) > 57) ? abs(ord('a')-ord($separator)-10) : $separator;
        $xMax = base_convert($xMax, $base, 10);
        $yMax = count($pxcContent);
        $image = imagecreatetruecolor($xMax, $yMax);
        for($y=0; $y<$yMax; $y++) {
                $pxcContent[$y] = explode($separator, $pxcContent[$y]);
                for($x=0; $x<$xMax; $x++) {
                        $rgb = base_convert($pxcContent[$y][$x], $base, 10);
                        $r = ($rgb >> 16) & 0xFF;
                        $g = ($rgb >> 8) & 0xFF;
                        $b = $rgb & 0xFF;
                        $id = imagecolorallocate($image, $r, $g, $b);
                        imagesetpixel($image, $x, $y, $id);
                        imagecolordeallocate($image, $id);
                }
        }
        return $image;
}

function imagepxc($image, $filename = null, $base = 35, $compress = false) {
        //$base c'est l'encodage pour les couleurs rvb. Mettre 2, ça va donner un gros fichier, en binaire, et mettre 35 un plus petit fichier. Je conseille 35 (c'est le max).
        $base = (int) $base;
        $xMax = imagesx($image);
        $yMax = imagesy($image);
        $separator = ($base > 9) ? chr(ord('a')+($base-10)) : $base;
        $pxcContent = array();
        for($y=0; $y<$yMax; $y++) {
                $pxcContent[$y] = array();
                for($x=0; $x<$xMax; $x++) {
                        $pxcContent[$y][$x] = base_convert(imagecolorat($image, $x, $y), 10, $base);
                }
                $pxcContent[$y] = implode($separator, $pxcContent[$y]);
        }
        $pxcContent = $separator.base_convert($xMax, 10, $base).$separator.implode("\n", $pxcContent);
       
        //on compresse le fichier
        if($compress !== false && is_int($compress)) $pxcContent = '0'.bzCompress($pxcContent, $compress);
       
        if($filename === null) {
                return $pxcContent;
        }
        else {
                $bool = ($f = fopen($filename, 'w+')) ? true : false;
                fwrite($f, $pxcContent);
                fclose($f);
                return $bool;
        }
}


Code : Autre
Une image PXC compressée contient :
* le chiffre '0',
* la compression bz de {
___* le séparateur,
___* la largeur de l'image,
___* la couleur du pixel 1;1,
___* le séparateur,
___* la couleur du pixel 1;dernier,
___* retour à la ligne
___* la couleur du pixel 2;1,
___* le séparateur,
___* la couleur du pixel 2;dernier,
___* etc
}

Une image PXC non compressée contient :
* le séparateur,
* la largeur de l'image,
* la couleur du pixel 1;1,
* le séparateur,
* la couleur du pixel 1;dernier,
* retour à la ligne
* la couleur du pixel 2;1,
* le séparateur,
* la couleur du pixel 2;dernier,
* etc

Lorsqu'on enregistre une image PXC, on choisit (facultativement) la base d'encodage, de 2 (binaire) à 35 (triquinquénaire :X)
et également le taux de compressage par l'alorithme de compression Bzip2. (ou on met false, par défaut).
Cette base se traduit par un délimiteur (ou séparateur) : 
base 2, délimiteur = 2,
base 7, délimiteur = 7,
base 10, délimiteur = a,
base 13, délimiteur = d,
base 27, délimiteur = r,
base 35, délimiteur = z,
[etc]
Choisir une petite base (2) entrainera un gros fichier au final.
un fichier image de 2x2, avec comme pixels :
vert | noir
noir | vert

entrainera ceci avec l'encodage en base 2 :
2102111111110000000020
021111111100000000
-> le délimiteur (2), la largeur de l'image (10 = 2 en decimal), puis le délimiteur, et enfin le pixel 0;0 ... etc

entrainera ceci avec l'encodage en base 15 :
f2f14520f0
0f14520
-> le delimiteur (f), la largeur de l'image (2 = 2 en decimal), puis le délimiteur, et enfin le pixel 0;0 ... etc

entrainera ceci avec l'encodage en base 35 :
z2z1ia5z0
0z1ia5
-> le délimiteur (z), la largeur de l'image (2 = 2 en decimal), puis le delimiteur, et enfin le pixel 0;0 ... etc

On voit que l'encodage en base 35 prend moins de stockage.

Il faut l'extension "Compression Bzip2" de php pour compresser, mais vous n'êtes pas obligé de compresser l'image...


Un p'tit lien

PS : je suis conscient que ce format est nul, je l'ai développé pour m'amuser. (avant qu'on m'insulte :p ).
Édité le 09/03/2007 à 02:08:32 par GuGus963
 
Hors ligne DHKold # Posté le 09/03/2007 à 02:32:30
Ex-Admin
Avatar
Groupe : Membres
woaw, ca doit être encore plus lent que ma fonction qui ouvre un bitmap o_O
Bon, aller, voilà ce que tu modifie:

- Arrête d'écrire en text-plein, utilise chaque octet comme un octet de 256 possibilités, pas comme un caractère.
-Le délimiteur est obsolète. Tu fixe un nombre donnée de bits/octets par pixel à la place.
-Défini clairement un entete, du genre, le fichier commence par 'PXC', puis la version sur 1 octet, suivit de la largeur sur 2 octets, suivit de la hauteur sur 2 octets, suivit du nombre de bits/couleurs, sur 1 octet, suivit de la taille de la palette sur 1 octets, etc...

et tu aurra un début de bitmap ^^

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne GuGus963 # Posté le 09/03/2007 à 02:36:31
Pour la connaissance libre !
Avatar
Groupe : Membres
Ahhhhh ouais pas con ^^
Merci :p

Sinon, tu as réussi à ouvrir un fichier bitmap .bmp ? avec les fonctions de gd ?

EDIT :

Citation : dhkold
Arrête d'écrire en text-plein, utilise chaque octet comme un octet de 256 possibilités, pas comme un caractère.


Pas compris :p

RE-EDIT :

Le problème, c'est que s'il n'y a pas de delimiteur, je serai obligé de transformer la couleur noire (0) en plusieurs 0, suivant l'encodage... une image contenant un fond noir seulement, serait donc plus grosse qu'une image avec un délimiteur. Mais bon. En tout cas, j'aurai besoin de str_split().
Édité le 09/03/2007 à 02:42:28 par GuGus963
 
Hors ligne NL # Posté le 09/03/2007 à 02:40:07
Avatar
Groupe : Membres
Toujours pour une réorganisation d'un array, mais sur un array multidimensionnel (bon, ça fonctionne, mais y a peut-être mieux à faire, j'ai pas trop cherché ^^')

Code : PHP
function trie_array($tableau, $ordre)
{
        if($ordre == 'asc')
                $tri = SORT_ASC;
        else
                $tri = SORT_DESC;
       
        $tableau_cle = $tableau_element = $tableau_final = array();
       
        foreach($tableau as $cle => $element)
        {
                $tableau_cle[$cle] = $cle; // On recrée la valeur du tableau global
               
                // Tri de chaque sous-tableau
                $tableau_element[$cle] = $element;
                $tableau_min_element = array_map('strtolower', $tableau_element[$cle]);
                array_multisort($tableau_min_element, $tri, SORT_STRING, $tableau_element[$cle]);
        }
       
        // On tri le tableau général
        $tableau_min_cle = array_map('strtolower', $tableau_cle);
        array_multisort($tableau_min_cle, $tri, SORT_STRING, $tableau_cle);
       
        // On fusionne les deux tableaux
        $tableau_final = array_merge($tableau_cle, $tableau_element);
       
        return $tableau_final;
}


Exemple :

Code : PHP
$tableau = array('Damien' => array('bidule', 'machin'), 'albatros' => array('bidule', 'machin'), 'Bernard' => array('bidule', 'machin'), 'chien' => array('bidule', 'machin'));

$tableau = trie_array($tableau, 'desc');

echo '<pre>';
print_r($tableau);
echo '</pre>';


Renvoie :

Code : Autre
Array
(
    [Damien] => Array
        (
            [0] => machin
            [1] => bidule
        )

    [chien] => Array
        (
            [0] => machin
            [1] => bidule
        )

    [Bernard] => Array
        (
            [0] => machin
            [1] => bidule
        )

    [albatros] => Array
        (
            [0] => machin
            [1] => bidule
        )

)


Ca réorganise tous les arrays selon l'ordre défini. J'ai pas vraiment d'idées où ça pourrait servir :p
Édité le 09/03/2007 à 02:42:13 par NL

Rêve de Plume ouvre enfin ses portes :)
 
Hors ligne GuGus963 # Posté le 09/03/2007 à 02:51:17
Pour la connaissance libre !
Avatar
Groupe : Membres
Citation : GuGus963
Citation : dhkold
Arrête d'écrire en text-plein, utilise chaque octet comme un octet de 256 possibilités, pas comme un caractère.


Pas compris :p


Ah, j'ai compris, je crois. Par exemple, si $rouge = 132, alors j'enregistre avec chr($rouge) ?
:)
 
Hors ligne DHKold # Posté le 09/03/2007 à 02:55:25
Ex-Admin
Avatar
Groupe : Membres
Citation : GuGus963
Sinon, tu as réussi à ouvrir un fichier bitmap .bmp ? avec les fonctions de gd ?


http://be2.php.net/manual/fr/function.imagecreate.php#53879 ^^

pour le chr(...), oui, mais le mieux est d'utiliser pack et unpack ^^
Édité le 09/03/2007 à 02:55:54 par DHKold

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne GuGus963 # Posté le 09/03/2007 à 03:03:08
Pour la connaissance libre !
Avatar
Groupe : Membres
Citation : DHKold
Citation : GuGus963
Sinon, tu as réussi à ouvrir un fichier bitmap .bmp ? avec les fonctions de gd ?


http://be2.php.net/manual/fr/function.imagecreate.php#53879 ^^

pour le chr(...), oui, mais le mieux est d'utiliser pack et unpack ^^


Alors d'abord gros bravo pour ta fonction ^^ C'est superbe ! (enfin je comprends pas tout, vas falloir que je déchiffre ^^).

Sinon, j'avais déjà regardé les fonction pack et unpack, mais sans y faire bien attention. Je vais regarder tout ça, et je verrai demain ^^
Merci encore :)

EDIT

Bon bah, j'y comprends rien :p
Enfin, les résultats renvoyés par pack() me semblent bien aléatoire. (oui j'ai lu, relu et re-relu la doc).

En attendant j'enrichis avec une petite fonction toute bête :

Code : PHP
function eraseAll($dir) {
        if($dir[strlen($dir)-1] != '/') $dir .= '/';
        $open = opendir($dir);
        while($file = readdir($open)) {
                if($file != '..' && $file != '.') {
                        if(is_file($dir.$file)) @unlink($dir.$file);
                        elseif(is_dir($dir.$file)) eraseAll($dir.$file);
                }
        }
        closedir($open);
        @rmdir($dir);
}


Elle est récursive. Que vous essayiez de supprimer un dossier qui en contient 100 autres ne la genera donc pas :p Voilà, à moi ça m'est utile, quand j'ai plein de fichiers à supprimer sur mon compte free par exemple, et comme avec filezilla ça va à 2 à l'heure...

Bye :)
Édité le 09/03/2007 à 13:52:36 par GuGus963
 
Hors ligne sansamis # Posté le 25/03/2007 à 23:39:15
J'en ai marre d'en avoir marre
Avatar
Groupe : Membres

Astuce


Auteur: sansamis (c'est moi :) )
Type: Astuce
But: Afficher simplement des fraction sur sons site
Code:
Code : PHP
<?php
// Comment utiliser ce code?
// Ce code doit être enregistré sous le nom de fichier "fraction.php" (et non pas ".htm" ou ".html").
// Ce code génère l'image d'une fraction.
// On affiche l'image comme ceci : <img border="no" src="fraction.php?numerateur=nombre_au_numerateur&denominateur=nombre_au_denominateur">
// Vous remplacez "nombre_au_numerateur" et "nombre_au_denominateur" par c e que vous voulez.
// Attention : pour afficher le signe plus, il ne faut pas mêttre "+" mais "%2B".
// Exemple :  <img border="no" src="fraction.php?numerateur=3%2BX&denominateur=124">
// Mon conseil : Pour que la fraction soit bien affichée (centrée sur la ligne), ajouter ce style à l'image :
// margin-bottom: -7px;
// Créé et optimlisé par sansamis | contact@sansamis.fr

header ("Content-type: image/png"); // On retourne le format de l'image générée.

$nb1 = stripslashes(htmlentities($_GET['numerateur'])); // On récupert le chiffre (ou les lettres, ou les 2) du numérateur (avec htmlentities pour éviter le hack)...