{"id":32,"date":"2006-06-14T17:37:27","date_gmt":"2006-06-14T17:37:27","guid":{"rendered":"http:\/\/www.olivierdoucet.info\/wordpress\/?p=32"},"modified":"2006-06-14T17:37:27","modified_gmt":"2006-06-14T17:37:27","slug":"27-migrer-de-php4-a-php5","status":"publish","type":"post","link":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/","title":{"rendered":"Migrer de PHP4 \u00e0 PHP5"},"content":{"rendered":"<p>Vous avez \u00e9crit le code php de votre site il y a d\u00e9j\u00e0 plusieurs ann\u00e9es, et vous n&rsquo;\u00eates pas certain qu&rsquo;il marche sous PHP5. Or, votre h\u00e9bergeur va bient\u00f4t passer sur cette version. Vous n&rsquo;avez pas de quoi tester si votre site est compatible ? Alors voil\u00e0 un guide expliquant les diff\u00e9rences entre les deux versions.<br \/>\n<!--more--><br \/>\n* strrpos et stripos() utilisent maintenant une chaine enti\u00e8re. A la base, ces fonctions recherchent l&rsquo;occurence d&rsquo;un seul caract\u00e8re dans une chaine. * L&rsquo;utilisation impropre d&rsquo;un index sur une chaine de caract\u00e8re produit une erreur E_ERROR au lien d&rsquo;un avertissement E_WARNING (exemple : \u00a0\u00bb$str = &lsquo;abc&rsquo;; unset($str\\[0\\]);\u00a0\u00bb) * array_merge() n&rsquo;accepte plus que des tableaux. Si vous voulez rajouter un \u00e9l\u00e9ment \u00e0 un tableau et que vous voulez absolument utiliser cette fonction (et non array_push ou []), il va falloir mettre votre \u00e9l\u00e9ment dans un taleau: array_merge($montableau, array ($monelement) ); Si vous utilisez quand m\u00eame cette fonction avec un \u00e9l\u00e9ment qui n&rsquo;est pas un tableau, un avertissement E_WARNING est envoy\u00e9, et le tableau r\u00e9sultat est vide. * La variable serveur PATH_TRANSLATED ne contient plus forc\u00e9ment la m\u00eame valeur qu&rsquo;en PHP4. Elle \u00e9tait avant utilis\u00e9e parfois dans le cas d&rsquo;une r\u00e9\u00e9criture des liens sous apache (ModRewrite). * La constante T_ML_CONSTANT n&rsquo;existe plus (elle \u00e9tait d\u00e9finie par l&rsquo;extension Tokenizer). * La version CLI de php5 utilisera toujours les variables globales $argc et $argv. * Un objet sans propri\u00e9t\u00e9s n&rsquo;est plus consid\u00e9r\u00e9 comme vide (empty) * get_class() retourne le nom de la fonction tel que d\u00e9clar\u00e9, sans en modifier la casse. En PHP, le nom retourn\u00e9 \u00e9tait toujours en minuscule. De m\u00eame pour les constantes magiques pr\u00e9d\u00e9finies \\__CLASS\\__, \\__METHOD\\__ et \\__FUNCTION\\__. * ip2long() retourne maintenant le bool\u00e9en faux (false) si l&rsquo;adresse donn\u00e9e est incorrecte. En PHP4, la fonction retournait -1. * La fonction is_a() est d\u00e9pr\u00e9ci\u00e9e et ne doit plus \u00eatre utilis\u00e9e. Il faut utiliser l&rsquo;op\u00e9rateur instanceof \u00e0 la place. * Vous ne pouvez plus r\u00e9assigner $this dans un objet. * include_once() et require_once() normalisent d&rsquo;abord le chemin du fichier \u00e0 inclure sous Windows, donc inclure le fichier A.php et le fichier a.php revient \u00e0 n&rsquo;inclure qu&rsquo;une seule fois le fichier. * Certains mots clefs sont r\u00e9serv\u00e9s par PHP5, et vous ne devez pas les utiliser : \u00a0\u00bbexception, interface, protected, throw, abstract, implements, clone, final, public, try, this, php_user_filter, private, catch\u00a0\u00bb%%% La plupart de ces mots-clefs viennent de l&rsquo;extension de la conception objet de php5, avec les concepts de variables priv\u00e9es\/publiques, la gestion des erreurs (try\/catch, que les fan de Java doivent connaitre par coeur) etc. %%% %%% __MAJ 14 juin 14h__%%% J&rsquo;ai d\u00e9velopp\u00e9 un [script qui v\u00e9rifie si votre code PHP4 est compatible PHP5|http:\/\/www.olivierdoucet.info\/scripts\/?action=showsource&#038;file=migration_php4-php5\/migrationphp4_5.phps|fr]. Le script en question est une version alpha d\u00e9velopp\u00e9e en 30minutes, donc loin d&rsquo;\u00eatre parfaite.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vous avez \u00e9crit le code php de votre site il y a d\u00e9j\u00e0 plusieurs ann\u00e9es, et vous n&rsquo;\u00eates pas certain qu&rsquo;il marche sous PHP5. Or, votre h\u00e9bergeur va bient\u00f4t passer sur cette version. Vous n&rsquo;avez pas de quoi tester si votre site est compatible ? Alors voil\u00e0 un guide expliquant les diff\u00e9rences entre les deux versions.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[29,39,40],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-php-sql","tag-php","tag-php4","tag-php5"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Migrer de PHP4 \u00e0 PHP5 - My thoughts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Migrer de PHP4 \u00e0 PHP5 - My thoughts\" \/>\n<meta property=\"og:description\" content=\"Vous avez \u00e9crit le code php de votre site il y a d\u00e9j\u00e0 plusieurs ann\u00e9es, et vous n&#039;\u00eates pas certain qu&#039;il marche sous PHP5. Or, votre h\u00e9bergeur va bient\u00f4t passer sur cette version. Vous n&#039;avez pas de quoi tester si votre site est compatible ? Alors voil\u00e0 un guide expliquant les diff\u00e9rences entre les deux versions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/\" \/>\n<meta property=\"og:site_name\" content=\"My thoughts\" \/>\n<meta property=\"article:published_time\" content=\"2006-06-14T17:37:27+00:00\" \/>\n<meta name=\"author\" content=\"Olivierd\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@odoucet\" \/>\n<meta name=\"twitter:site\" content=\"@odoucet\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivierd\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/\",\"name\":\"Migrer de PHP4 \u00e0 PHP5 - My thoughts\",\"isPartOf\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\"},\"datePublished\":\"2006-06-14T17:37:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.olivierdoucet.info\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrer de PHP4 \u00e0 PHP5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/\",\"name\":\"My thoughts\",\"description\":\"En fran\u00e7ais and in english :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403\",\"name\":\"Olivierd\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g\",\"caption\":\"Olivierd\"},\"sameAs\":[\"http:\/\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Migrer de PHP4 \u00e0 PHP5 - My thoughts","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:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/","og_locale":"fr_FR","og_type":"article","og_title":"Migrer de PHP4 \u00e0 PHP5 - My thoughts","og_description":"Vous avez \u00e9crit le code php de votre site il y a d\u00e9j\u00e0 plusieurs ann\u00e9es, et vous n'\u00eates pas certain qu'il marche sous PHP5. Or, votre h\u00e9bergeur va bient\u00f4t passer sur cette version. Vous n'avez pas de quoi tester si votre site est compatible ? Alors voil\u00e0 un guide expliquant les diff\u00e9rences entre les deux versions.","og_url":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/","og_site_name":"My thoughts","article_published_time":"2006-06-14T17:37:27+00:00","author":"Olivierd","twitter_card":"summary_large_image","twitter_creator":"@odoucet","twitter_site":"@odoucet","twitter_misc":{"\u00c9crit par":"Olivierd","Dur\u00e9e de lecture estim\u00e9e":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/","url":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/","name":"Migrer de PHP4 \u00e0 PHP5 - My thoughts","isPartOf":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#website"},"datePublished":"2006-06-14T17:37:27+00:00","author":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403"},"breadcrumb":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.olivierdoucet.info\/blog\/2006\/06\/14\/27-migrer-de-php4-a-php5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.olivierdoucet.info\/blog\/"},{"@type":"ListItem","position":2,"name":"Migrer de PHP4 \u00e0 PHP5"}]},{"@type":"WebSite","@id":"https:\/\/www.olivierdoucet.info\/blog\/#website","url":"https:\/\/www.olivierdoucet.info\/blog\/","name":"My thoughts","description":"En fran\u00e7ais and in english :)","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/308d5cde55f1ba886ebe73450b54c403","name":"Olivierd","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","caption":"Olivierd"},"sameAs":["http:\/\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":0,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}