Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/11/2006, 12h10   #1
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Par défaut [DOMXML] Créer une image à partir d'un flux XML

Bonjour à toutes et à tous!

J'espère que vous allez bien .

Le contexte:
J'importe des données via un fichier XML concernant des éléments illustrés par des photos [exemple fictif: Liste d'équipe et de joueurs de football avec la photo de l'équipe et des joueurs en individuel]. Les photos sont stocké directement dans le XML via ce que j'appel le "flux image" (du style:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<Attribut Nom="Photo_Flux" Type="bin.base64" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="bin.base64">/9j/4AAQSkZJRgABAQEAyADIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQY
GBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYa
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAAR
CAE2AYoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
[...]
</Attribut>
).

Ma problématique:
Lors du traitement du XML pour importer les infos nottament en base de données, j'aimerais recréer les images "physique" qui correspondent à ces flux. Cad les fichier .jpg (ou autres... comment le savoir?) concernés. Et ce via PHP... comment faire? Je n'ai rien trouvé à ce sujet [je dis bien "rien trouvé" et non "rien n'éxiste" ].

Merci d'avance pour vos éléments de réponse!
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 13h01   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
http://php.net/fopen
http://php.net/fwrite
http://php.net/fclose

__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 13h02   #3
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
tu peux utiliser imagecreatefromstring() si tu as GD http://www.php.net/manual/fr/functio...fromstring.php

Tu peux également enregistrer la variable contenant l'image dans un fichier, fopen, fwrite, flclose, ensuite tu utilise getimagesize() sur le fichier créé pour avoir le type d'image, puis tu renommes le fichier en ajoutant l'extension.

Tu devras peut-être effectuer une conversion ASCII => binaire

Bye
Djakisback est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 13h20   #4
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Merci pour ces précisions ^^!

Une fois de plus je note tout de même que le "niveau" de l'utilisateur ne fait pas la qualité du POST .
Puisqu'effectivement je sais écrire un fichier, ce que je voulais savoir c'est si il était nécessaire de rajouter des en-têtes spécifiques à ce fichier ou autre données non-contenues dans le flux lui même .

Merci!
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 13h23   #5
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
T'auras peut-être besoin de ca aussi : base64_ decode() ^^
Djakisback est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 13h29   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par Just
Puisqu'effectivement je sais écrire un fichier, ce que je voulais savoir c'est si il était nécessaire de rajouter des en-têtes spécifiques à ce fichier ou autre données non-contenues dans le flux lui même .
Je dirais à priori non.
Mais sais tu ce que tu recois ? .gif, .png, ... ?
Sais-tu comment le flux a été généré ?
Est-ce qu'il y a une doc qui t'explique comment traiter le contenu ?
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 13h39   #7
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Ha !
Voilà une réponse plus fournit . Et je t'en remerci Mr N. .

Et bien, ce sont des points essentiels que tu soulèves là. Le flux en question est généré par ,un progiciel de gestion à l'élaboration douteuse... la doc technique jointe est totalement incomplète. Donc peu de réponse fournit par l'éditeur :/.
Mais à vue de nez, je dirais que c'est très certainement du JPeG.

Je pense que le mieux à présent est de faire des tests, ce à quoi je vais m'attacher dans les jours à venir. Les éléments que vous m'avez apportez me fournissent déjà une base solide et je vous en remerci .

Je ne manquerais pas de vous donner un feedback, qui j'espère, serat des plus positifs ^^!
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 14h20   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par Just
Voilà une réponse plus fournit . Et je t'en remerci Mr N. .
Désolé si ma première réponse t'a paru trop concise mais ton sujet initial laissait comprendre que tu ne savais pas créer un fichier...

Donc pour completer :
http://php.net/fopen
http://php.net/fwrite + http://php.net/base64_decode
http://php.net/fclose
Toussa dans un fichier temporaire + http://php.net/mime_content_type pour connaitre le type de fichier ou alors se baser sur gd comme précisé précédemment.
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 14h49   #9
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
C'est pas faux .

Je fait les tests immédiatement et vous donnes le feedback sur la lancé .
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 15h05   #10
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Ca marche IMPECCABLE!

J'me permet de poster le petit bou de code, pour les personnes éventuellement intéressées.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$nomImage = 'notreImage.jpg';
$fluxImage = 'votreFluxBase64';
 
@unlink($nomImage);
$fichierImage = fopen($nomImage,'w+');
fwrite($fichierImage,base64_decode($fluxImage));
fclose($fichierImage);
 
$infosImage = getimagesize($nomImage);
?>
<html>
	<body>
		<img align="left" src="<? echo $nomImage; ?>" />
		<p>
			<? print_r($infosImage); ?>
		</p>
	</body>
</html>
Merci à Mr N. et Djakisback pour leurs aides!

Bonne continuation à tous . J'm'en vais fouiller dans les tuto' XML pour le reste .
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 15h26   #11
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Pas moyen de trouver un bon tutaux pour lire du XML en PHP4 :/.

Je sais qu'il faut passer par DOM [concept que je connais "bien"].

Siouplait ?
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 15h55   #12
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Cadeau:
http://php.net/dom

C'est fou ce qu'elle est bien faite cette doc php
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 16h21   #13
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2006
Messages : 68
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2006
Messages : 68
Points : 29
Points : 29
Nia Nia Nia!

J'bossais dessus justement .

Par contre qu'on méclaire: j'ai lu sur certains POST que DOM comme SimpleXML était réservé à PHP5... ce n'est donc pas le cas?
Là j'ai commencé à bosser avec DOMXML... pas bien?

EDIT: sans vouloir être méchant... j'ai vérifier si il y a avait un extension DOM à chargé dans PHP... visiblement nan... j'ai bien ajouter l'extension DOMXML en revanche. J'utilise la version 4.3.0 de PHP... et de là: rien ne marche au niveau DOM ^^... :'(. Conseil empoisonné ?

EDIT2: d'après ce que j'ai pu lire dans cette si merveilleuse doc PHP [ironique mais non moins vrai], c'est bien ce que je pensais -> DOM = PHP5, DOM XML = PHP4. Donc je ne peux me servir de DOM :/. En attendant PHP5 sur mes serveurs . je m'en retourne donc vers DOM XML... qui semble certes bien moins pratique :/.
Just est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 17h33   #14
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par Just
je m'en retourne donc vers DOM XML... qui semble certes bien moins pratique
En effet. L'inverse (php5 moins pratique que php4) aurait été surprenant
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h58.


 
 
 
 
Partenaires

Hébergement Web