[PHP] Renommer une image génerée en PHP
Résolu/Fermé
Bussy14
Messages postés
45
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
4 avril 2013
-
6 oct. 2007 à 06:06
pr.nizar - 9 déc. 2008 à 21:51
pr.nizar - 9 déc. 2008 à 21:51
A voir également:
- [PHP] Renommer une image génerée en PHP
- Renommer plusieurs fichiers en même temps - Guide
- Image iso - Guide
- Renommer iphone - Guide
- Comment agrandir une image - Guide
- Acronis true image - Télécharger - Sauvegarde
7 réponses
vignemail1
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
259
6 oct. 2007 à 10:19
6 oct. 2007 à 10:19
A mon avis tu devrais regardé au niveau de la fonction php header() et voir si tu ne peux pas spécifier le nom du fichier, un peu comme lorsque tu envoie le type mime au début de image.php
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
6 oct. 2007 à 10:35
6 oct. 2007 à 10:35
Salut.
Je ne suis pas sur, mais je pense que l'une des seules solutions est l'url rewriting.
Je te conseille de faire un dossier /image, ou tu mettras ton script PHP de génération d'image.
Ensuite, tu peux générer plusieurs images différentes selon l'url qui est appelée.
Je ne suis pas sur, mais je pense que l'une des seules solutions est l'url rewriting.
Je te conseille de faire un dossier /image, ou tu mettras ton script PHP de génération d'image.
Ensuite, tu peux générer plusieurs images différentes selon l'url qui est appelée.
Bussy14
Messages postés
45
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
4 avril 2013
5
6 oct. 2007 à 16:09
6 oct. 2007 à 16:09
Tu parles d'utiliser un .htaccess qui lit qqc du genre:
.../image/acces-image_mon-nom-d-image
et de le retranscrire en :
image.php?chemin=acces-image&nom=mon-nom-d-image
J'utilise ces informations pour créer mon image, puis comme ça le script appelé a l'air d'avoir un vrai nom d'image ?
Je vais essayer ça, ça pourrait marcher en effet!
Je vous tiens au courant
.../image/acces-image_mon-nom-d-image
et de le retranscrire en :
image.php?chemin=acces-image&nom=mon-nom-d-image
J'utilise ces informations pour créer mon image, puis comme ça le script appelé a l'air d'avoir un vrai nom d'image ?
Je vais essayer ça, ça pourrait marcher en effet!
Je vous tiens au courant
Bussy14
Messages postés
45
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
4 avril 2013
5
8 oct. 2007 à 20:52
8 oct. 2007 à 20:52
Salut!
Ça marche très bien!
Merci beaucoup pour l'idée!
Ça m'a prit pas mal de temps à le configurer, mais finalement c'est parfait!
Merci!
Ça marche très bien!
Merci beaucoup pour l'idée!
Ça m'a prit pas mal de temps à le configurer, mais finalement c'est parfait!
Merci!
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
9 oct. 2007 à 19:48
9 oct. 2007 à 19:48
Salut !
Est-ce que tu peux expliquer ici ce que tu as fait (ou pourquoi pas dans les astuces, si tu es contributeur) ?
Ca servira sûrement à d'autres, et ça m'intéresse aussi.
Merci !
Est-ce que tu peux expliquer ici ce que tu as fait (ou pourquoi pas dans les astuces, si tu es contributeur) ?
Ca servira sûrement à d'autres, et ça m'intéresse aussi.
Merci !
Bussy14
Messages postés
45
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
4 avril 2013
5
10 oct. 2007 à 01:51
10 oct. 2007 à 01:51
Bon alors voilà la solution au problème:
Comment renommer une image générée en PHP ?
Le problème étant que quand on créé une image en utilisant la librairie GD en PHP, l'image créée à pour nom le nom du fichier php utilisé, avec l'extension de l'image, ex:
image.php.jpg
Alors une solution au problème est d'utiliser l'URL Rewriting en utilisant un fichier ".htaccess".
Un fichier .htaccess est un fichier lu par le serveur et interprété avant d'exécuter les fichiers appelés, il peut servir entre (pleins d') autres à créer des URL statics, qui sont, eux, indexés par les moteurs de recherche (google, yahoo, ...) contrairement aux pages dont l'URL est du genre: fichier.php?a=3&e=5, car les moteurs de recherche coupent l'URL à partir du '?' (point d'interrogation).
ex:
l'url : www.site.com/2007/10/09
peut être interprété par:
www.site.com/index.php?annee=2007&mois=10&jour=09
Bon, dans mon cas, je donne le nom de l'image en URL, et c'est le fichier de création d'image qui est appelé en passant en paramètre le nom de l'image depuis laquelle il faut créer une nouvelle.
Plus précisément, j'écris dans le fichier .htaccess:
Pour les détails, il faudra lire les documents d'apprentissage.
Ce .htaccess est placé dans un sous-dossier nommé "image"
Dans ce sous-dossier, il n'y a que le fichier .htaccess et le fichier de création d'image, nommé "image.php"
comme on peut voir, image.php prend 5 arguments:
1 - le nom de l'album
2 - le nom de l'image (sans l'extension, pcq ca ferait trop laid)
3 - le type de l'image (un code pour déterminer l'extension: 0=jpeg, 1=jpg, 2=png, 3=gif)
4 - largeur que prendra l'image créée
5 - hauteur de l'image créée
Au final, dans le dossier parent, quand on affiche une image, on utilise:
<img src="image/nom-dossier__nom-image__code-type__largeur__hauter" />
ex:
<img src="image/divers__chien__2__250__120" />
Ce qui crééra une image de type png de largeur 250, de hauteur 120 qui s'appelle chien.png et qui se trouve dans le dossier divers, et le nom de l'image créée (quand on fait: clic-droit->Enregistrer l'image sous) est: diver__chien__2__250__120.png
L'URL rewriting utilisant un masque, ce qui est entre parenthèse est un élément qui va devenir un attribut, ".+" signifie n'importe quel caractère et "[0-9]" n'importe quel nombre, j'utilise donc un double '_' ("underscore") car certains de mes noms de dossiers ou d'images contiennent le caractère '_' ("underscore").
Mais selon vos besoins, si vous êtes sûr de pouvoir utiliser un caractère unique séparant vos attributs (nom de dossier, d'image, etc...), vous pouvez obtenir quelquechose de plus propre, tel que:
dossier-image-type-largeur-hauteur.
Une autre solution est d'utiliser une base de donnée qui associe un ID unique à une image.
Ainsi, en appelant l'URL: www.site.com/ID-de-mon-image
le fichier image.php appellera l'image dont l'ID correspond dans la table.
(c'est d'après moi ce qu'utilise Facebook, mais je veux écrire un script plus portable, donc pas de base de données).
Pour toute question, n'hésitez surtout pas à la poster! Je reçois les nouveaux posts par mail, donc je répondrai au plus tôt!
Bon courage!
- Thibaud -
Comment renommer une image générée en PHP ?
Le problème étant que quand on créé une image en utilisant la librairie GD en PHP, l'image créée à pour nom le nom du fichier php utilisé, avec l'extension de l'image, ex:
image.php.jpg
Alors une solution au problème est d'utiliser l'URL Rewriting en utilisant un fichier ".htaccess".
Un fichier .htaccess est un fichier lu par le serveur et interprété avant d'exécuter les fichiers appelés, il peut servir entre (pleins d') autres à créer des URL statics, qui sont, eux, indexés par les moteurs de recherche (google, yahoo, ...) contrairement aux pages dont l'URL est du genre: fichier.php?a=3&e=5, car les moteurs de recherche coupent l'URL à partir du '?' (point d'interrogation).
ex:
l'url : www.site.com/2007/10/09
peut être interprété par:
www.site.com/index.php?annee=2007&mois=10&jour=09
Bon, dans mon cas, je donne le nom de l'image en URL, et c'est le fichier de création d'image qui est appelé en passant en paramètre le nom de l'image depuis laquelle il faut créer une nouvelle.
Plus précisément, j'écris dans le fichier .htaccess:
Options +FollowSymLinks RewriteEngine on RewriteRule ^(.+)__(.+)__(.+)__([0-9]+)__([0-9]+)$ image.php?a=$1&i=$2&e=$3&w=$4&h=$5
Pour les détails, il faudra lire les documents d'apprentissage.
Ce .htaccess est placé dans un sous-dossier nommé "image"
Dans ce sous-dossier, il n'y a que le fichier .htaccess et le fichier de création d'image, nommé "image.php"
comme on peut voir, image.php prend 5 arguments:
1 - le nom de l'album
2 - le nom de l'image (sans l'extension, pcq ca ferait trop laid)
3 - le type de l'image (un code pour déterminer l'extension: 0=jpeg, 1=jpg, 2=png, 3=gif)
4 - largeur que prendra l'image créée
5 - hauteur de l'image créée
Au final, dans le dossier parent, quand on affiche une image, on utilise:
<img src="image/nom-dossier__nom-image__code-type__largeur__hauter" />
ex:
<img src="image/divers__chien__2__250__120" />
Ce qui crééra une image de type png de largeur 250, de hauteur 120 qui s'appelle chien.png et qui se trouve dans le dossier divers, et le nom de l'image créée (quand on fait: clic-droit->Enregistrer l'image sous) est: diver__chien__2__250__120.png
L'URL rewriting utilisant un masque, ce qui est entre parenthèse est un élément qui va devenir un attribut, ".+" signifie n'importe quel caractère et "[0-9]" n'importe quel nombre, j'utilise donc un double '_' ("underscore") car certains de mes noms de dossiers ou d'images contiennent le caractère '_' ("underscore").
Mais selon vos besoins, si vous êtes sûr de pouvoir utiliser un caractère unique séparant vos attributs (nom de dossier, d'image, etc...), vous pouvez obtenir quelquechose de plus propre, tel que:
dossier-image-type-largeur-hauteur.
Une autre solution est d'utiliser une base de donnée qui associe un ID unique à une image.
Ainsi, en appelant l'URL: www.site.com/ID-de-mon-image
le fichier image.php appellera l'image dont l'ID correspond dans la table.
(c'est d'après moi ce qu'utilise Facebook, mais je veux écrire un script plus portable, donc pas de base de données).
Pour toute question, n'hésitez surtout pas à la poster! Je reçois les nouveaux posts par mail, donc je répondrai au plus tôt!
Bon courage!
- Thibaud -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
10 oct. 2007 à 08:36
10 oct. 2007 à 08:36
Salut !
Merci pour ton explication.
Avec quel hébergeur est-tu ?
Juste une ramrque :
""
Un fichier .htaccess est un fichier lu par le serveur et interprété avant d'exécuter les fichiers appelés, il peut servir entre (pleins d') autres à créer des URL statics, qui sont, eux, indexés par les moteurs de recherche (google, yahoo, ...) contrairement aux pages dont l'URL est du genre: fichier.php?a=3&e=5, car les moteurs de recherche coupent l'URL à partir du '?' (point d'interrogation).
""
Maintenant, les liens avec des variables (?truc=machin&toto=tata&foo) sont bien vérifiés par les moteurs de recherche. Mais de toute façon, c'est plus propre comme ça (et puis certains moteurs suivant des urls font EXPRES de ne pas suivre les urls de ce type, pour différentes raisons).
Merci pour ton explication.
Avec quel hébergeur est-tu ?
Juste une ramrque :
""
Un fichier .htaccess est un fichier lu par le serveur et interprété avant d'exécuter les fichiers appelés, il peut servir entre (pleins d') autres à créer des URL statics, qui sont, eux, indexés par les moteurs de recherche (google, yahoo, ...) contrairement aux pages dont l'URL est du genre: fichier.php?a=3&e=5, car les moteurs de recherche coupent l'URL à partir du '?' (point d'interrogation).
""
Maintenant, les liens avec des variables (?truc=machin&toto=tata&foo) sont bien vérifiés par les moteurs de recherche. Mais de toute façon, c'est plus propre comme ça (et puis certains moteurs suivant des urls font EXPRES de ne pas suivre les urls de ce type, pour différentes raisons).
Bussy14
Messages postés
45
Date d'inscription
dimanche 29 octobre 2006
Statut
Membre
Dernière intervention
4 avril 2013
5
10 oct. 2007 à 18:15
10 oct. 2007 à 18:15
Salut,
Ah, merci pour la précision, je ne savais pas! :)
Je suis sur deux hébergeurs: ixwebhosting: https://www.bluehost.com/?ixref=%2F
et d'un autre côté, un ami m'héberge sur dreamhost: https://signup.dreamhost.com/shared/email/
Le premier étant pour le boulot, le deuxième est perso.
Les deux sont très bien, bien que dreamhost a connut plus de "down", plus de moment de lag ou même de non accessibilité que ix.
Pour un usage perso, dreamhost est très bon car pas cher.
Sur les deux, il y a énormément d'espace disque et de bande passante disponibles.
Voilà,
Au plaisir d'avoir aidé quelques-uns et d'en avoir appris beaucoup!
- Thibaud -
Ah, merci pour la précision, je ne savais pas! :)
Je suis sur deux hébergeurs: ixwebhosting: https://www.bluehost.com/?ixref=%2F
et d'un autre côté, un ami m'héberge sur dreamhost: https://signup.dreamhost.com/shared/email/
Le premier étant pour le boulot, le deuxième est perso.
Les deux sont très bien, bien que dreamhost a connut plus de "down", plus de moment de lag ou même de non accessibilité que ix.
Pour un usage perso, dreamhost est très bon car pas cher.
Sur les deux, il y a énormément d'espace disque et de bande passante disponibles.
Voilà,
Au plaisir d'avoir aidé quelques-uns et d'en avoir appris beaucoup!
- Thibaud -