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 :

Vers une version PHP plus récente


Sujet :

Langage PHP

  1. #21
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Merci Dentrite et MaitrePylos pour vos réponses.
    Désolé pour mes remerciements extrêmement tardifs...
    Les dernières remarques de notre dalmatien m'avait éloigné de ce site.

    Et j'en avais abandonné l'idée de passer en php7.
    Seulement voilà, j'ai eu écho que php 5 ne sera plus supporté en 2019.
    Serait-ce exact?

    Merci MaitrePylos pour votre suggestion de docker mais je n'ai pas compris la manip.

  2. #22
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Bonjour Olivier,
    Merci de poser la question. Je me pose la même.
    Dit autrement, qu'est-ce qu'on risque VRAIMENT à conserver sur des serveurs pros des versions de PHP non maintenues au niveau sécurité.
    Ce qui m'a encouragée à lire ceci (en anglais) qui a l'air récent et assez exhaustif.

    https://kinsta.com/blog/php-versions/

  3. #23
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Merci Dentrite pour ce lien intéressant qui confirme l'intérêt de passer à php7.

    Pour vérifier la compatibilité d'un script php5 vers php7, j'ai trouvé php7mar:
    https://github.com/Alexia/php7mar

    Je l'ai téléchargé et je l'ai mis dans mon espace "www" de mon WAMP...
    Mais j'ai le message d'erreur suivant lorsque j'entre l'url (http://localhost/php7mar-master/mar.php) dans mon navigateur.

    Est-ce que quelqu'un sait comment utiliser php7mar?

    Bonne Journée.

  4. #24
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    L'outil que vous présentez est un outil à utiliser en ligne de commande et non pas sur un serveur web.
    Du coup l'erreur est simplement du au fait qu'il manque des paramètres, puisque vous en pouvez les passer en url web.
    Le plus simple aurais été de lire le README, tout est écrit dedans.

  5. #25
    Invité
    Invité(e)
    Par défaut
    Nouvelle question : nouvelle discussion.


    @MaitrePylos

    olivierdauxais a ouvert une nouvelle discussion, dans laquelle j'avais transféré ta précédente réponse.

  6. #26
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Merci, ce qu est bizarre, c'est que je n'ai pas été notitfié de ce changement.

  7. #27
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Bonjour MaitrePylos,

    J'ai lu et relu le "Usage" du README... Dans tous les sens.

    J'ai essayé tout plein de trucs: Sans espace ici et là, sans les "", en 2 temps ou 3 temps, avec son fichier "testcases.php" ou avec un de mes fichiers (OliPage.php) ... etc...

    Rien ne marche. Le mieux que je puisse obtenir est sur la photo d'écran ci-dessous de mon invite de commande:

    Nom : Oups2.jpg
Affichages : 223
Taille : 62,8 Ko

    Je suis donc toujours dans le brouillard le plus total...
    Et j'en viens même à me demander si ce "php7mar" d'Alexia E. Smith n'est pas un simple canulard...
    Et je reste poli en utilisant le mot "canulard"... ;-)

    Y a t'il quelqu'un qui pourrait m'éclairer?
    Je vous redonne le lien pour télécharger "php7mar" pour ceux que cela amuserait de le tester:
    https://github.com/Alexia/php7mar

  8. #28
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Il n'y a absolument pas de canulars, cela fonctionne très bien, c'est vous qui avez des difficultés avec vos chemins et vos fichiers.

    Si vous regardez votre dernière ligne, vous ne laisser aucun espace entre mar.php et -f , il faut un espace.
    De plus votre fichier OliPage.php se trouve bien dans c:\wamp\bin\php\php7.2.10 ? si non, il faut aussi donner le chemin complet
    Et le chemin complet de OliPage.php doit-être entre ""

  9. #29
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Problème résolu au lien suivant:
    https://www.developpez.net/forums/d1...-vers-php-7-a/

  10. #30
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Bonjour à toutes et tous,

    Après utilisation de php7mar qui m'indiquait que mes scripts php (écrits sous php5) étaient compatibles pour php 7.2.10.
    J'ai tout de même vérifier manuellement tous mes scripts sous php 7.2.10.
    Quand bien même php7mar ne l'avait pas détecté, j'ai découvert ceci:

    Les fonctions "imagettfbbox()" et "imagettftext()" marchent très bien sous php 5.6.36 et php 7.0.32...
    Mais ne marchent plus sous php 7.1.22 et php 7.2.10.
    J'obtiens les messages d'erreur suivants:
    Warning: imagettfbbox(): Could not find/open font in C:\wamp\www\MS\Dipl.php on line 93
    Warning: imagettftext(): Could not find/open font in C:\wamp\www\MS\Dipl.php on line 96

    Voici un extrait de mon code qui montre ces lignes 93 et 96 (lignes 14 et 19 de mon extrait ci-dessous):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    $IT='imagettftext';
    $DCL=$_POST['CertifLevel'];
    $FF='MS/AAA/ARIALUNI.TTF';
    $S1=60;
    $S2=50;
    $S3=24;
    $S4=13;
    $DFileW=996; 
    $Dipl=imagecreatefromjpeg("MS/AAA/Dipl0.jpg");
    $TiC=imagecolorallocate($Dipl, 255, 255, 255);
    $TeC=imagecolorallocate($Dipl, 0, 0, 0);
    $Txt=$_POST['CertifLevel'];
    $FS=$S1;
    $Box=imagettfbbox($FS, 0, $FF, $Txt);
    $Size=abs($Box[0])+abs($Box[2]);
    if ($Size>896) {$FS=round($S1*890/$Size); $Box=imagettfbbox($FS, 0, $FF, $Txt);}
    $X=round(($DFileW/2)-((abs($Box[0])+abs($Box[2]))/2)-2);
    $Y=103;
    $IT($Dipl, $FS, 0, $X, $Y, $TiC, $FF, $Txt);
    $X=$X+1;
    $IT($Dipl, $FS, 0, $X, $Y, $TiC, $FF, $Txt);
    Je vous montre mon code... Mais je doute que le problème vienne de là.
    C'est le seul fait de changer de version de php qui me donne des messages d'erreur.

    Evidement, je suis allé voir sur le manuel officiel de php:
    http://php.net/manual/fr/function.imagettfbbox.php
    Mais je n'ai rien trouvé qui puisse vraiment m'éclairer... à part peut-être cette note:
    "Note: Cette fonction n'est disponible que si si PHP est compilé avec le support Freetype (--with-freetype-dir=DIR )"

    Mais pourquoi donc le support Freetype aurait été supprimé sous php 7.1 et plus?
    Comment vérifier si cela est vraiment le cas?
    Ou... Y aurait-il une autre raison à cette panne?

  11. #31
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    A tout hasard, dans les commentaires de la doc, il y a aussi cela

    Please note that the 3rd argument is really a "path".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    imagettfbbox(10, 0, 'arial.ttf', 'Hello, World!');  // will result in "Warning: imagettfbbox(): Could not find/open font in ...php on line ..." 
    ?>
    use instead something like this:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php imagettfbbox(10, 0, './arial.ttf', 'Hello, World!'); ?> 
    or 
    <?php imagettfbbox(10, 0, getcwd().'/arial.ttf', 'Hello, World!'); ?>
    Ce qui donnerait dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $FF='./MS/AAA/ARIALUNI.TTF';
    Sinon tu es bien certain pour les lettres capitales ?

    Une dernière chose : ne pas confondre warning (alerte) et error (plantage de script).
    PHP7mar ne détectera pas les alertes si tu lui demandes une étude "critical", il les détectera si tu lui demandes une étude "nuance", ce qui n'est pas spécialement indiqué par ailleurs (source github).
    Test Types
    Critical
    Critical tests look for issues that will cause broken code, compilation errors, or otherwise create code that works in unintended manors.

    Nuance
    Nuance tests look for issues that might cause silent underisable code behavior. These tests can report many false positives as they can not determine the intent of the code being checked.

  12. #32
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Merci Dendrite mais tes propositions ne marchent pas.

    La localisation relative de mon FontFile ($FF) est bel et bien correcte.
    Cette localisation marche parfaitement dans les version précédentes de php...
    Ce qui prouve qu'il n'y a pas d'erreur dans la localisation de mon FontFile.

    Par contre, j'ai trouvé ceci: https://www.wxforum.net/index.php?topic=33312.0

    Et... En effet, je viens d'essayer avec une localisation absolue et non plus relative... Et ça marche.
    La localisation absolue est facile en local mais il me faudra vérifier le chemin exact sur mon serveur... Hummm.

    Maintenant, il serait intéressant de savoir si ceci est une forme de bug propre au langage php 7.2 qui n'accepte plus les chemins relatifs
    pour ces 2 fonctions imagettfbbox() et imagettftext() et uniquement pour ces 2 fonctions.
    En effet, une autre fonction comme imagecreatefromjpeg() par exemple continue d'accepter les chemins relatifs tout comme dans les versions précédentes de php.

    Serait-ce un bug interne au langage php 7.2?

  13. #33
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Autre petite question, chère Dendrite.
    Au fait, quel différence y a t'il entre "\" ou "/" lorsqu'on écrit un chemin?
    Les deux semblent marcher.

  14. #34
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Citation Envoyé par olivierdauxais Voir le message
    Autre petite question, chère Dendrite.
    Au fait, quel différence y a t'il entre "\" ou "/" lorsqu'on écrit un chemin?
    Les deux semblent marcher.
    Cela dépend de l'OS Windows/Linux, pour être sur d'utiliser le bon, on utilise la constante , comme ça plus de souci suivant l'OS qui héberge l'application.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php imagettfbbox(10, 0, getcwd().DIRECTORY_SEPARATOR.'arial.ttf', 'Hello, World!'); ?>

  15. #35
    Membre régulier
    Homme Profil pro
    Apprenti perpétuel
    Inscrit en
    Novembre 2012
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Apprenti perpétuel

    Informations forums :
    Inscription : Novembre 2012
    Messages : 194
    Points : 72
    Points
    72
    Par défaut
    Merci MaitrePylos,
    C'est génial ces 2 trucs "getcwd()" et "DIRECTORY_SEPARATOR".

    N'étant pas habitué à l'usage de chemin absolu, je me pose dés lors les questions suivantes.
    Pourquoi le chemin absolu d'une image est du type URL (http://...) et non du type root (C:\...)?
    Et pourquoi le chemin absolu du fichier ttf pour la fonction imagettftext() serait du type root (C:\...) et non du type URL (http://...)?
    Serait-ce parce qu'une image est sollicitée par le navigateur alors qu'un fichier ttf est sollicité par une fonction php au niveau du serveur?

Discussions similaires

  1. Installer et travailler avec une version PHP plus récente sur REDHAT
    Par Sto90 dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 13/10/2015, 18h40
  2. Réponses: 10
    Dernier message: 23/10/2009, 10h04
  3. Réponses: 12
    Dernier message: 11/02/2009, 15h15
  4. passage de données d'une popup vers une page PHP
    Par loukili81 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/03/2006, 19h54
  5. [Tomcat] migration vers une version plus récente
    Par butcher dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 31/10/2003, 22h46

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