[PHP] Renommer une image génerée en PHP
Résolu
Bussy14
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
pr.nizar -
pr.nizar -
A voir également:
- [PHP] Renommer une image génerée en PHP
- Renommer des fichiers en masse - Guide
- Expert php pinterest - Télécharger - Langages
- Renommer iphone - Guide
- Image iso - Guide
- Légender une image - Guide
7 réponses
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
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.
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
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!
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
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).
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 -