IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

SQL Server : utilisation d'un type de champ binaire [PHP 7]


Sujet :

Langage PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut SQL Server : utilisation d'un type de champ binaire
    Bonjour,

    Je dois lire une table SQL Server dont une colonne est un champ de type binaire, (le type image exactement).
    J'utilise l'extension sqlsrv pour cela et mon objectif est de lire de champ binaire et d'écrire un fichier localement exploitable.

    Un bête file_put_content ne me permet pas d'avoir un fichier exploitable.

    Comment faire ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 263
    Points : 15 573
    Points
    15 573
    Par défaut
    quelle sont les différences entre le fichier d'origine et le fichier produit en PHP ?

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Et bien par exemple, le fichier d'origine, un GIF, quand je l'ouvre avec un éditeur de texte, j'ai du binaire qui commence par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    GIF89a  ÷  ÿÿÿøøøÿÿÿõ÷õÜïØ‹Ô{†Òuéx« ñôñ!·  ¯ ª ˆÓx·ù©ÚîÕ*ðŽ ± 2´ŠÔz!¶ #¿ ”ì€#¸"» DÂ(K½1 ° ªô™oßV ž"½ !¹ µÈ±ŠÓzñóð!´ F†9!µ  ³ ¨ <~-”%¬#à bÅK#®§ ¨ © $³I‰;¦ ‹¬ƒ"¬cÆLñôðJ¿0K‰>#¯ž¹™~¥v7¾+Æ	"¾ G¼-/¶$tãèâËÓÉG<uŽoüýü¯ 7Ã&Ä/µ1º1¤"º *ÆËÓÊ]šO‰æu_žR™©–÷ø÷W–I/Ã/¶KÀ1EÏ&G©1RxJc¤SM‹@1¸*î[ŽQ¹Ä·H’9#À G¾-BË$_ÙDkÍU‹év³÷¤ÒÙÐ*éT‚JÑÙдıŽ2½`ÙEvá^úûú¢ñ‘¾û°"¿ ‡×uOyFèìçÄÏÂ+z#°i›_JÌ.qàY…çp˜î†§ó–ŸðhÂSFr<5‚#1¾‰ÔxdÈNSÐ8zâbˆès’ë~äiOwFOº7=ÄaÇK?Ã#jÚQ}äg~ähyâaXÔ=7À†ÓvTÄ;òôñRÄ8/¶—'¥jqÙùáñø R™„Ý sÕ pÑ oÍ lÊ jÆ h f¾ dº b· `³ ^¯ \« Z§ X£ V*ôÀJþÏXüá‰ùôå-d•S‰·B€²g*Êj¨Ó“ÃäáíõóááÔ==ÐçûºÞüµÜü§Õý—Îþ‘Ìþs¾ÿn¼ÿrÏ mË kÇ ià g¿ e» c¸ a´ _°`®C…¾ÁÔåUŠ6G@²+¾®“PW‚³÷ªæ_Yþè ¡ÂÕ`‘`*wÖ”’ÿü”•²$Ût\@å?6üÁÁK
    3c)mœp³˜€*8ÿÆo$&Š9¸¥v‘ûâ0(}7©×ª--P‚
    ¾r4ô8 sT.dålùƒ6%¥€1hÿ€oÿw!ù    ,       è @*À§> 0p*••,aÂÔÈ’&y¬8lÁ¨‘šGƒ`²$iR 
     
    $h!…:„(Q‚‰æ:`ÇÁyºìáÓg<gæ¤QShƒ6nÞ"N
    [¸tñ2¨P!1!¦â óÁL"']p¼‘¢†J•©V®`ùÀ„É"S‹92UÀ%Kèj0ñÇT6u¦öðåƒ	3yî+*“Æ&ä!`ÂñÃx¬`áxÁ†Ld.#„Ç™Ü`¥Å‚Ì)T¨6Mã¤Ã¼yӐ²aA
    $hXØ0  ;
    Et dans SQL Server ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0x47494638396110001000F70000FFFFFFF8F8F8FFFFFFF5F7F5DCEFD88BD47B86D2758DE9781FAB00F1F4F121B70020AF001FAA0088D378B7F9A9DAEED5A0F08E20B10032B4158AD47A21B60023BF0094EC8023B80222BB0044C2284BBD3120B000AAF4996FDF56209E0322BD0021B900B5C8B18AD37AF1F3F021B40046863921B50020B3001EA8003C7E2D1F940625AC0823C30062C54B23AE041EA7001FA8001FA90024B30449893B1EA6008BAC8322AC0463C64CF1F4F04ABF304B893E23AF049EB9997EA57637BE192BC60922BE0047BC2D2FB612247412E3E8E2CBD3C9477F3C758E6FFCFDFC1FAF0037C31826C4032FB51131BA1331A41722BA002AC608CBD3CA5D9A4F89E6755F9E5299A996F7F8F75796492FC30F2FB6114BC03145CF2647A93152784A63A4534D8B4031B814A0EE8F5B8E51B9C4B748923923C00047BE2D42CB245FD9446BCD558BE976B3F7A4D2D9D0A0E99054824AD1D9D0B4C4B11A8E0132BD1460D94576E15EFAFBFAA2F191BEFBB022BF0087D7754F7946E8ECE7C4CFC22B7A1B23B005699B5F4ACC2E71E05985E77098EE86A7F3969FF08D68C25346723C35822331BE1289D47864C84E53D0387AE26288E87392EB7E7FE4694F77464FBA373DC41E61C74B3FC3236ADA517DE4677EE46879E26158D43D37C01986D37654C43BF2F4F152C4382FB69727A56A71D9F9E1F1F80052991D84DD0073D50070D1006FCD006CCA006AC60068C20066BE0064BA0062B70060B3005EAF005CAB005AA70058A30056A0F4C04AFECF58FCE189F9F4E52D64955389B74280B267A0CA6AA8D393C3E4E1EDF5F3E1E1D43D3DD0E7FBBADEFCB5DCFCA7D5FD97CEFE91CCFE73BEFF6EBCFF0672CF006DCB006BC70069C30067BF0065BB0063B80061B4005FB00660AE4385BEC1D4E5557F8A36904740B22BBEAE93505782B3F7AAE65F59FEE800A1C2D5609160A0771CD69492FFFC9495B28F24DB03745C40E53F36FCC1C1064B0A3363296D9C70B398802A38FFC615156F240F05268A39B8A57691FBE230287D8237A9D7AA2D2D5014820ABE7234F4380073542E64E56CF9833625A5803168FF1C806F90FF7721F90401000000002C00000000100010000008E80001080440A0C0A70C193E15203070A09502952C61C2D4C892261F79AC386CC1A8919A47830E60B22469520B8D000A000A246810210E850E183A842851018289E6043A60C7C11D0E79BAECE1D36705813C67E6A45153688D83366EDE081010224E1E0D5BB874F132A850213121A6E220F3C14C22275D70BC91A2864A95A956AE60F9C084C91022538B18393255C01F254BE86A30F105C7543675A6F6F001E5830933791C17EE2BA00693C62616E42160C2F10CC30278AC60E178C10286054C642E81238407C79917DC0460A5C582CC2954A8364DE3A4C302BC79D3908DB261410D12246858D83020003B

    Je ne vois pas comment à partir de l'image encodée 0x... obtenue avec une requête SQL, transformer à en GIF89a... (comme à l'origine) pour écrire mon fichier image avec file_put_content.

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 263
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 263
    Points : 15 573
    Points
    15 573
    Par défaut
    le contenu est encodé en hexadecimal, vous pouvez le convertir comme cela par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $contenuBrut = "0x474946383961100 (et tout le reste)";
     
    $valeur = hex2bin(substr($contenuBrut, 2));
     
    file_put_contents("/tmp/image.gif", $valeur);
    et vous obtiendrez bien l'image du disque vert avec la coche

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 464
    Points : 474
    Points
    474
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL CE 3.5] Quel type de champs utiliser pour du texte ?
    Par zax-tfh dans le forum Développement
    Réponses: 10
    Dernier message: 06/03/2009, 15h30
  2. [sql server]utiliser Insert avec une clé auto
    Par nourbane dans le forum ASP
    Réponses: 6
    Dernier message: 18/05/2006, 23h02
  3. [SQL SERVER 2000]taille et type des champs
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 09/05/2006, 11h59
  4. [SQL-SERVER] Utilisation de DEFAULT (valeur par défaut)
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/03/2006, 18h53
  5. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo