{"id":77,"date":"2013-10-21T21:37:28","date_gmt":"2013-10-21T20:37:28","guid":{"rendered":"http:\/\/louis.hatier.me\/blog\/?p=77"},"modified":"2015-08-12T17:42:20","modified_gmt":"2015-08-12T16:42:20","slug":"php-5-5-array_column-superglobale-files","status":"publish","type":"post","link":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/","title":{"rendered":"array_column : utilisation avec $_FILES"},"content":{"rendered":"<p><a title=\"\" href=\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg\" data-rel=\"lightbox-gallery-A9PTkLZv\" data-rl_title=\"\" data-rl_caption=\"\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-78 alignleft\" title=\"PHP array_column\" src=\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg\" alt=\"PHP array_column\" width=\"220\" height=\"156\" \/><\/a>La sortie de PHP 5.5, actuellement en version 5.5.5, a amen\u00e9e plusieurs nouveaut\u00e9s. Nous allons nous attarder ici sur une des nouvelles fonctions int\u00e9gr\u00e9es : <strong>array_column<\/strong>, et l&rsquo;appliquer \u00e0 l&rsquo;upload multiple.<\/p>\n<p>Pour comprendre ce que fait cette fonction un exemple sera plus parlant que des mots :<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><!--more--><\/p>\n<pre><code class=\"php\">$records = array(\r\n    array(\r\n        'id' =&gt; 2135,\r\n        'first_name' =&gt; 'John',\r\n        'last_name' =&gt; 'Doe',\r\n    ),\r\n    array(\r\n        'id' =&gt; 3245,\r\n        'first_name' =&gt; 'Sally',\r\n        'last_name' =&gt; 'Smith',\r\n    ),\r\n    array(\r\n        'id' =&gt; 5342,\r\n        'first_name' =&gt; 'Jane',\r\n        'last_name' =&gt; 'Jones',\r\n    ),\r\n    array(\r\n        'id' =&gt; 5623,\r\n        'first_name' =&gt; 'Peter',\r\n        'last_name' =&gt; 'Doe',\r\n    )\r\n);\r\n\r\n$first_names = array_column($records, 'first_name');\r\nprint_r($first_names);\r\n<\/code><\/pre>\n<pre><code class=\"php\">array (size=4)\r\n  0 =&gt; string 'John' (length=4)\r\n  1 =&gt; string 'Sally' (length=5)\r\n  2 =&gt; string 'Jane' (length=4)\r\n  3 =&gt; string 'Peter' (length=5)\r\n<\/code><\/pre>\n<p>Dans un tableau \u00e0 2 dimensions vous pouvez donc pr\u00e9ciser une clef de tableau et obtenir ainsi les valeurs de chaque tableaux poss\u00e9dant cette clef.<\/p>\n<p>&nbsp;<\/p>\n<h2>Tableaux de plusieurs fichiers $_FILES avec array_column<\/h2>\n<p>Si vous avez d\u00e9j\u00e0 utilis\u00e9 l&rsquo;upload de plusieurs fichiers simultan\u00e9ment, vous \u00eates surement tomb\u00e9 sur un probl\u00e8me : la fa\u00e7on dont la variable superglobale <code>$_FILES<\/code> renvoie les \u00e9l\u00e9ments.<\/p>\n<p>Voici un exemple ci-dessous du dump de <code>$_FILES<\/code> avec 2 fichiers envoy\u00e9s :<\/p>\n<pre><code class=\"html\">&lt;form action=\"\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\r\n    &lt;input type=\"file\" name=\"documents[]\" multiple&gt;\r\n    &lt;input type=\"submit\" value=\"Envoyer\"&gt;\r\n&lt;\/form&gt;\r\n<\/code><\/pre>\n<pre><code class=\"php\">array (size=5)\r\n  'name' =&gt; \r\n    array (size=2)\r\n      0 =&gt; string 'photo1.png' (length=12)\r\n      1 =&gt; string 'photo2.png' (length=8)\r\n  'type' =&gt; \r\n    array (size=2)\r\n      0 =&gt; string 'image\/png' (length=9)\r\n      1 =&gt; string 'image\/png' (length=9)\r\n  'tmp_name' =&gt; \r\n    array (size=2)\r\n      0 =&gt; string '\/tmp\/phpGZa2ya' (length=14)\r\n      1 =&gt; string '\/tmp\/php52dYdV' (length=14)\r\n  'error' =&gt; \r\n    array (size=2)\r\n      0 =&gt; int 0\r\n      1 =&gt; int 0\r\n  'size' =&gt; \r\n    array (size=2)\r\n      0 =&gt; int 246369\r\n      1 =&gt; int 510519\r\n<\/code><\/pre>\n<p>C&rsquo;est un tableau \u00e0 2 dimensions group\u00e9 par <em>name<\/em>, <em>type<\/em> etc. On ne peut donc pas boucler dessus pour avoir chaque fichier envoy\u00e9.<\/p>\n<p>On peut s&rsquo;en sortir gr\u00e2ce \u00e0 une fonction du style :<\/p>\n<pre><code class=\"php\">function multiFileFormat(array $arrFiles)\r\n{\r\n    $files = array();\r\n    $fdata = $arrFiles;\r\n    if (is_array($fdata['name'])) {\r\n        for ($i = 0 ; $i &lt; count($fdata['name']) ; $i++) {\r\n            $files[] = array(\r\n                'name'     =&gt; $fdata['name'][$i],\r\n                'type'     =&gt; $fdata['type'][$i],\r\n                'tmp_name' =&gt; $fdata['tmp_name'][$i],\r\n                'error'    =&gt; $fdata['error'][$i],\r\n                'size'     =&gt; $fdata['size'][$i]\r\n            );\r\n        }\r\n    } else {\r\n        $files[] = $fdata;\r\n    }\r\n    return $files;\r\n}\r\n<\/code><\/pre>\n<p>Grace \u00e0 la nouvelle fonction <em>array_column<\/em>, nous allons pouvoir faire sensiblement la m\u00eame chose avec moins de lignes :<\/p>\n<pre><code class=\"php\">$i = 0;\r\n$documents = array();\r\nwhile (!empty(array_column($_FILES['documents'], $i))) {\r\n    $documents[] = array_column($_FILES['documents'], $i);\r\n    $i++;\r\n}\r\n<\/code><\/pre>\n<p>Petite explication de ces quelques lignes de codes : je boucle sur les index en partant de 0, ce qui permet de r\u00e9cup\u00e9rer dans un tableau les 5 \u00e9l\u00e9ments du m\u00eame index : <em>name<\/em>, <em>type<\/em>, <em>tmp_name<\/em>, <em>error<\/em> et <em>size<\/em>. Voila ce que donne le dump de la variable <code>$documents<\/code>.<\/p>\n<pre><code class=\"php\">array (size=2)\r\n  0 =&gt; \r\n    array (size=5)\r\n      0 =&gt; string 'photo1.png' (length=12)\r\n      1 =&gt; string 'image\/png' (length=9)\r\n      2 =&gt; string '\/tmp\/phpGZa2ya' (length=14)\r\n      3 =&gt; int 0\r\n      4 =&gt; int 246369\r\n  1 =&gt; \r\n    array (size=5)\r\n      0 =&gt; string 'photo2.png' (length=8)\r\n      1 =&gt; string 'image\/png' (length=9)\r\n      2 =&gt; string '\/tmp\/php52dYdV' (length=14)\r\n      3 =&gt; int 0\r\n      4 =&gt; int 510519\r\n<\/code><\/pre>\n<p>L&rsquo;inconv\u00e9nient de cette technique comparer \u00e0 la fonction <em>multiFileFormat<\/em> est que les index <em>name<\/em>, <em>type<\/em> etc. sont remplac\u00e9s par des num\u00e9riques.<\/p>\n<p>Si on veut am\u00e9liorer \u00e7a et g\u00e9rer nos fichiers fa\u00e7on <em>objet<\/em>, on peut utiliser une classe <em>UploadedFile<\/em> qui va nous rendre la vie plus facile pour g\u00e9rer ces \u00e9l\u00e9ments par la suite.<\/p>\n<pre><code class=\"php\">$i = 0;\r\n$documents = array();\r\nwhile (!empty(array_column($_FILES['documents'], $i))) {\r\n    list($name, $type, $tmp_name, $error, $size) = array_column($_FILES['documents'], $i);\r\n    $documents[] = new UploadedFile($name, $type, $tmp_name, $error, $size);\r\n    $i++;\r\n}<\/code><\/pre>\n<p>Cette classe nous permet par la suite de g\u00e9rer un objet <strong>$file<\/strong> (instance de <em>UploadedFile<\/em>) comme ceci :<\/p>\n<pre><code class=\"php\">echo $file-&gt;getSize(UploadedFile::SIZE_KO) . '&lt;br&gt;'; \/\/ affiche le poid en Ko\r\nif ($file-&gt;hasError()) {\r\n    echo $file-&gt;getErrorMessage() . '&lt;br&gt;'; \/\/ affiche \u00e9ventuellement un message d'erreur\r\n}\r\necho $file-&gt;getExtension() . '&lt;br&gt;'; \/\/ affiche l'extension\r\necho $file-&gt;getType() . '&lt;br&gt;'; \/\/ affiche le type de fichier\r\n$file-&gt;move('\/var\/www\/monsite\/media\/'); \/\/ enregistre le fichier o\u00f9 vous voulez\r\n<\/code><\/pre>\n<p>Pour aller voir le contenu de la classe <strong>UploadedFile<\/strong> direction le\u00a0<a title=\"Repository UploadedFile\" href=\"https:\/\/github.com\/anaphel\/UploadedFile\" target=\"_blank\">repository GitHub<\/a>.<\/p>\n<p>Ceci est une fa\u00e7on d&rsquo;appliquer la fonction <strong>array_column <\/strong>pour se faciliter les choses. Le passage par la classe <em>UploadedFile<\/em> n&rsquo;est pas obligatoire, c&rsquo;est juste un moyen de pouvoir manipuler par la suite son fichier comme un objet et d&rsquo;avoir acc\u00e8s \u00e0 quelques fonctions pratiques pour r\u00e9cup\u00e9rer un message d&rsquo;erreur explicite, l&rsquo;extension du fichier etc.<\/p>\n<p>Si vous avez une version ant\u00e9rieur \u00e0 PHP 5.5 et que vous \u00eates sur une Debian, vous pouvez consulter\u00a0<a title=\"Passer de PHP 5.4 \u00e0 PHP 5.5\" href=\"http:\/\/louis.hatier.me\/blog\/installer-debian-windows\/#php5-5\">cet article<\/a> pour savoir comment mettre \u00e0 jour PHP et ainsi profiter des derni\u00e8res am\u00e9liorations apport\u00e9es \u00e0 cette mouture.<\/p>\n<p>Pour information la version 5.5 est stable et il n&rsquo;y a aucunes raisons de s&rsquo;en priver !<\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img decoding=\"async\" src=\"https:\/\/static.hupso.com\/share\/buttons\/dot.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"pinterest\",\"email\",\"linkedin\");var hupso_counters_lang = \"en_US\";var hupso_image_folder_url = \"\";var hupso_url_c=\"\";var hupso_title_c=\"array_column%20%3A%20utilisation%20avec%20%24_FILES\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"excerpt":{"rendered":"<p>La sortie de PHP 5.5, actuellement en version 5.5.5, a amen\u00e9e plusieurs nouveaut\u00e9s. Nous allons nous attarder ici sur une des nouvelles fonctions int\u00e9gr\u00e9es : array_column, et l&rsquo;appliquer \u00e0 l&rsquo;upload multiple. Pour comprendre ce que fait cette fonction un exemple sera plus parlant que des mots : &nbsp; &nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[30,57],"class_list":["post-77","post","type-post","status-publish","format-standard","hentry","category-php","tag-git","tag-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>array_column : utilisation avec $_FILES - Melting Poutre<\/title>\n<meta name=\"description\" content=\"La version 5.5 de PHP ajoute de nouvelles fonctions. Comment se servir de la fonction array_column avec la superglobale $_FILES.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"array_column : utilisation avec $_FILES - Melting Poutre\" \/>\n<meta property=\"og:description\" content=\"La version 5.5 de PHP ajoute de nouvelles fonctions. Comment se servir de la fonction array_column avec la superglobale $_FILES.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/\" \/>\n<meta property=\"og:site_name\" content=\"Melting Poutre\" \/>\n<meta property=\"article:published_time\" content=\"2013-10-21T20:37:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-08-12T16:42:20+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg\" \/>\n<meta name=\"author\" content=\"Louis Hatier\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Louis Hatier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/\"},\"author\":{\"name\":\"Louis Hatier\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"headline\":\"array_column : utilisation avec $_FILES\",\"datePublished\":\"2013-10-21T20:37:28+00:00\",\"dateModified\":\"2015-08-12T16:42:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/\"},\"wordCount\":431,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"image\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg\",\"keywords\":[\"Git\",\"PHP\"],\"articleSection\":[\"PHP\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/\",\"url\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/\",\"name\":\"array_column : utilisation avec $_FILES - Melting Poutre\",\"isPartOf\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg\",\"datePublished\":\"2013-10-21T20:37:28+00:00\",\"dateModified\":\"2015-08-12T16:42:20+00:00\",\"description\":\"La version 5.5 de PHP ajoute de nouvelles fonctions. Comment se servir de la fonction array_column avec la superglobale $_FILES.\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage\",\"url\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg\",\"contentUrl\":\"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#website\",\"url\":\"https:\/\/louis.hatier.me\/blog\/\",\"name\":\"Melting Poutre\",\"description\":\"Du web et d&#039;autres choses\",\"publisher\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/louis.hatier.me\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\",\"name\":\"Louis Hatier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g\",\"caption\":\"Louis Hatier\"},\"logo\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/louis.hatier.me\",\"https:\/\/www.linkedin.com\/in\/louishatier\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"array_column : utilisation avec $_FILES - Melting Poutre","description":"La version 5.5 de PHP ajoute de nouvelles fonctions. Comment se servir de la fonction array_column avec la superglobale $_FILES.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/","og_locale":"fr_FR","og_type":"article","og_title":"array_column : utilisation avec $_FILES - Melting Poutre","og_description":"La version 5.5 de PHP ajoute de nouvelles fonctions. Comment se servir de la fonction array_column avec la superglobale $_FILES.","og_url":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/","og_site_name":"Melting Poutre","article_published_time":"2013-10-21T20:37:28+00:00","article_modified_time":"2015-08-12T16:42:20+00:00","og_image":[{"url":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg","type":"","width":"","height":""}],"author":"Louis Hatier","twitter_misc":{"\u00c9crit par":"Louis Hatier","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#article","isPartOf":{"@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/"},"author":{"name":"Louis Hatier","@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"headline":"array_column : utilisation avec $_FILES","datePublished":"2013-10-21T20:37:28+00:00","dateModified":"2015-08-12T16:42:20+00:00","mainEntityOfPage":{"@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/"},"wordCount":431,"commentCount":0,"publisher":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"image":{"@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage"},"thumbnailUrl":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg","keywords":["Git","PHP"],"articleSection":["PHP"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/","url":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/","name":"array_column : utilisation avec $_FILES - Melting Poutre","isPartOf":{"@id":"https:\/\/louis.hatier.me\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage"},"image":{"@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage"},"thumbnailUrl":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg","datePublished":"2013-10-21T20:37:28+00:00","dateModified":"2015-08-12T16:42:20+00:00","description":"La version 5.5 de PHP ajoute de nouvelles fonctions. Comment se servir de la fonction array_column avec la superglobale $_FILES.","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/louis.hatier.me\/blog\/php-5-5-array_column-superglobale-files\/#primaryimage","url":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg","contentUrl":"http:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2013\/10\/php.jpg"},{"@type":"WebSite","@id":"https:\/\/louis.hatier.me\/blog\/#website","url":"https:\/\/louis.hatier.me\/blog\/","name":"Melting Poutre","description":"Du web et d&#039;autres choses","publisher":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/louis.hatier.me\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11","name":"Louis Hatier","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g","caption":"Louis Hatier"},"logo":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/louis.hatier.me","https:\/\/www.linkedin.com\/in\/louishatier\/"]}]}},"_links":{"self":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":35,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions"}],"predecessor-version":[{"id":476,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/77\/revisions\/476"}],"wp:attachment":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/categories?post=77"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/tags?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}