• =?UTF-8?Q?Migration_Bookworm_--=3E_Trixie=2C_probl=C3=A8me_php?=

    From Jose CHARTERS@21:1/5 to All on Tue Jun 3 22:50:01 2025
    This is a multi-part message in MIME format.
    Bonjour,

    Suite à la migration de Bookworm vers Trixie, qui s'est plutôt bien
    passé, j'ai un problème avec PHP 8.4 sur l'utilisation des tableaux.

    J'ai consulté le site debian sur le sujet des soucis Trixie lors de la migration, je n'ai rien trouvé.

    Sur le petit fichier php suivant :

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">

    </head>
    <body>

    <?php
    $tutu = array();
    $tutu[] = 'toto' => 'a';
    $tutu[] = 'titi' => 'b';


    coucou

    </body>
    </html>

    J'obtiens l'affichage suivant :

    'a'; $tutu[] = 'titi' => 'b'; ?> coucou

    C'est comme si l'opérateur => était inconnu ou stoppait l'interpretation
    php.

    Je me souviens qu'après l'installation, apache2 ne se lançait pas car il cherchait à lancer les modules : php8.2.conf  php8.2.load. Puisque avec Trixie, c'est PHP 8.4 qui a été utilisé, j'ai supprimé purement et simplement ces fichiers de leur répertoire /etc/apache2/mods-enabled.
    J'ai reinstallé php8.4, mais sans changement.

    Je ne sais plus où chercher car je suppose que c'est un souci d'install
    de Trixie. À moins que ce soit une évolution/anomalie PHP, mais je n'ai
    rien vu de ce coté.

    Si quelqu'un à une idée, merci.

    Cordialement,

    José


    <!DOCTYPE html>
    <html>
    <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p>Bonjour,</p>
    <p>Suite à la migration de Bookworm vers Trixie, qui s'est plutôt
    bien passé, j'ai un problème avec PHP 8.4 sur l'utilisation des
    tableaux.</p>
    <p>J'ai consulté le site debian sur le sujet des soucis Trixie lors
    de la migration, je n'ai rien trouvé.</p>
    <p>Sur le petit fichier php suivant :</p>
    <p>&lt;meta http-equiv="content-type" content="text/html;
    charset=UTF-8"&gt;<br>
    <br>
    &lt;/head&gt;<br>
    &lt;body&gt;<br>
    <br>
    &lt;?php<br>
    $tutu = array();<br>
    $tutu[] = 'toto' =&gt; 'a';<br>
    $tutu[] = 'titi' =&gt; 'b';<br>
    ?&gt;<br>
    <br>
    coucou<br>
    <br>
    &lt;/body&gt;<br>
    &lt;/html&gt;<br>
    </p>
    <p>J'obtiens l'affichage suivant :<br>
    </p>
    <p>'a';
    $tutu[] = 'titi' =&gt; 'b';
    ?&gt;
    coucou <br>
    </p>
    <p>C'est comme si l'opérateur =&gt; était inconnu ou stoppait
    l'interpretation php.</p>
    <p>Je me souviens qu'après l'installation, apache2 ne se lançait pas
    car il cherchait à lancer les modules : php8.2.conf  php8.2.load.
    Puisque avec Trixie, c'est PHP 8.4 qui a été utilisé, j'ai
    supprimé purement et simplement ces fichiers de leur répertoire
    /etc/apache2/mods-enabled. J'ai reinstallé php8.4, mais sans
    changement.</p>
    <p>Je ne sais plus où chercher car je suppose que c'est un souci
    d'install de Trixie. À moins que ce soit une évolution/anomalie
    PHP, mais je n'ai rien vu de ce coté.</p>
    <p>Si quelqu'un à une idée, merci.</p>
    <p>Cordialement,</p>
    <p>José<br>
    </p>
    <p><br>
    </p>
    <div id="grammalecte_menu_main_button_shadow_host"
    style="width: 0px; height: 0px;"></div>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?S=C3=A9bastien_NOBILI?=@21:1/5 to All on Wed Jun 4 08:50:02 2025
    Bonjour,

    Le 2025-06-03 22:46, Jose CHARTERS a écrit :
    <?php
    $tutu = array();
    $tutu[] = 'toto' => 'a';
    $tutu[] = 'titi' => 'b';

    Il ne me semble pas que cette notation soit valide.

    C'est plutôt comme ça qu'il faudrait l'écrire :

    ```
    $tutu = array();
    $tutu['toto'] = 'a';
    $tutu['titi'] = 'b';
    ```

    Ou bien :

    ```
    $tutu = [
    'toto' => 'a',
    'titi' => 'b',
    ];
    ```

    En tout cas ton code ne s'interprète pas mieux avec PHP 8.2 dans
    Bookworm :

    ```
    PHP Parse error: syntax error, unexpected token "=>" in /tmp/test.php
    on line 3
    ```

    Ton problème n'est donc pas lié à ta mise à jour :)

    Sébastien

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jose CHARTERS@21:1/5 to All on Wed Jun 4 23:10:01 2025
    This is a multi-part message in MIME format.
    Le 04/06/2025 à 08:42, Sébastien NOBILI a écrit :
    Bonjour,

    Le 2025-06-03 22:46, Jose CHARTERS a écrit :
    <?php
    $tutu = array();
    $tutu[] = 'toto' => 'a';
    $tutu[] = 'titi' => 'b';

    Il ne me semble pas que cette notation soit valide.

    C'est plutôt comme ça qu'il faudrait l'écrire :

    ```
    $tutu = array();
    $tutu['toto'] = 'a';
    $tutu['titi'] = 'b';
    ```

    Ou bien :

    ```
    $tutu = [
        'toto' => 'a',
        'titi' => 'b',
    ];
    ```

    En tout cas ton code ne s'interprète pas mieux avec PHP 8.2 dans
    Bookworm :

    ```
    PHP Parse error:  syntax error, unexpected token "=>" in /tmp/test.php
    on line 3
    ```

    Ton problème n'est donc pas lié à ta mise à jour :)

    Sébastien

    Bonsoir,

    Merci de ta réponse Sébastien.

    Je reste perplexe.

    J'ai fait le correctif que tu proposes :

    <body>

    <?php
    $tutu = array();
    $tutu['toto']  = 'a';
    $tutu['titi']  = 'b';

    echo "var tutu ".$tutu['toto'];
    var_dump($tutu);
    print_r($tutu);


    coucou
    </body>

    Effectivement, je vois bien coucou dans ma page.  Mais uniquement
    coucou. Comme tu le vois j'ai cherché à afficher le contenu de mon
    tableau de plusieurs manières, et rien n’apparaît.

    Ce qui me fait douter de mon installation.

    Par contre, j'ai un peu trop simplifié mon exemple. Ce serait plutôt cela :

    <?php
    $tutu = array();
    $tutu[] = ['toto'  => 'a', 'titi' => 'b' ] ;
    $tutu[] = ['toto'  => 'c', 'titi' => 'd' ] ;


    C'est un tableau de tableau associatif.

    Et je t'assure que cela fonctionnait très bien sous Bookworm, depuis
    presque 2 ans. Par contre, je ne me souviens plus quelle version de PHP, j'utilisais.

    Cordialement,

    José

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Le 04/06/2025 à 08:42, Sébastien NOBILI
    a écrit :<br>
    </div>
    <blockquote type="cite"
    cite="mid:35c4a92d8d2b0be551230b2988111efc@pipoprods.org">Bonjour,
    <br>
    <br>
    Le 2025-06-03 22:46, Jose CHARTERS a écrit :
    <br>
    <blockquote type="cite">&lt;?php
    <br>
    $tutu = array();
    <br>
    $tutu[] = 'toto' =&gt; 'a';
    <br>
    $tutu[] = 'titi' =&gt; 'b';
    <br>
    </blockquote>
    <br>
    Il ne me semble pas que cette notation soit valide.
    <br>
    <br>
    C'est plutôt comme ça qu'il faudrait l'écrire :
    <br>
    <br>
    ```
    <br>
    $tutu = array();
    <br>
    $tutu['toto'] = 'a';
    <br>
    $tutu['titi'] = 'b';
    <br>
    ```
    <br>
    <br>
    Ou bien :
    <br>
    <br>
    ```
    <br>
    $tutu = [
    <br>
        'toto' =&gt; 'a',
    <br>
        'titi' =&gt; 'b',
    <br>
    ];
    <br>
    ```
    <br>
    <br>
    En tout cas ton code ne s'interprète pas mieux avec PHP 8.2 dans
    Bookworm :
    <br>
    <br>
    ```
    <br>
    PHP Parse error:  syntax error, unexpected token "=&gt;" in
    /tmp/test.php on line 3
    <br>
    ```
    <br>
    <br>
    Ton problème n'est donc pas lié à ta mise à jour :)
    <br>
    <br>
    Sébastien
    <br>
    </blockquote>
    <p>Bonsoir,</p>
    <p>Merci de ta réponse Sébastien.</p>
    <p>Je reste perplexe.</p>
    <p>J'ai fait le correctif que tu proposes :</p>
    <p>&lt;body&gt;<br>
    <br>
    &lt;?php<br>
    $tutu = array();<br>
    $tutu['toto']  = 'a';<br>
    $tutu['titi']  = 'b';<br>
    <br>
    echo "var tutu ".$tutu['toto'];<br>
    var_dump($tutu);<br>
    print_r($tutu);<br>
    ?&gt;<br>
    <br>
    coucou<br>
    &lt;/body&gt;<br>
    </p>
    <p>Effectivement, je vois bien coucou dans ma page.  Mais uniquement
    coucou. Comme tu le vois j'ai cherché à afficher le contenu de mon
    tableau de plusieurs manières, et rien n’apparaît.</p>
    <p>Ce qui me fait douter de mon installation.<br>
    </p>
    <p>Par contre, j'ai un peu trop simplifié mon exemple. Ce serait
    plutôt cela :</p>
    <p>&lt;?php<br>
    $tutu = array();<br>
    $tutu[] = ['toto'  =&gt; 'a', 'titi' =&gt; 'b' ] ;<br>
    $tutu[] = ['toto'  =&gt; 'c', 'titi' =&gt; 'd' ] ;<br>
    ?&gt;</p>
    <p>C'est un tableau de tableau associatif.
    </p>
    <p>Et je t'assure que cela fonctionnait très bien sous Bookworm,
    depuis presque 2 ans. Par contre, je ne me souviens plus quelle
    version de PHP, j'utilisais.</p>
    <p>Cordialement,</p>
    <p>José<br>
    </p>
    <div id="grammalecte_menu_main_button_shadow_host"
    style="width: 0px; height: 0px;"></div>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?S=C3=A9bastien_NOBILI?=@21:1/5 to All on Thu Jun 5 08:50:01 2025
    Bonjour José,

    Le 2025-06-04 23:02, Jose CHARTERS a écrit :
    Effectivement, je vois bien coucou dans ma page. Mais uniquement
    coucou. Comme tu le vois j'ai cherché à afficher le contenu de mon
    tableau de plusieurs manières, et rien n’apparaît.

    À tout hasard, as-tu regardé le code de la page ou son rendu ?
    Que vois-tu si tu récupères la page avec `curl` (ou bien si tu consultes
    le code depuis ton navigateur - Ctrl-U dans Firefox) ?

    Ce qui me fait douter de mon installation.

    J'ai testé ton code avec PHP 8.2 (Bookworm) et 8.4 (Trixie) en CLI.

    Voilà le code de test :

    ```
    <?php

    $tutu = array();
    $tutu['toto'] = 'a';
    $tutu['titi'] = 'b';

    echo 'var tutu ' . $tutu['toto'];
    var_dump($tutu);
    print_r($tutu);
    ```

    Voilà le résultat dans Bookworm :

    ```
    $ php -v
    PHP 8.2.28 (cli) (built: Mar 13 2025 18:21:38) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.2.28, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.28, Copyright (c), by Zend Technologies
    $ php -f /tmp/test.php
    var tutu aarray(2) {
    ["toto"]=>
    string(1) "a"
    ["titi"]=>
    string(1) "b"
    }
    Array
    (
    [toto] => a
    [titi] => b
    )
    ```

    Et dans Trixie :

    ```
    $ php -v
    PHP 8.4.6 (cli) (built: Apr 14 2025 16:59:47) (NTS)
    Copyright (c) The PHP Group
    Zend Engine v4.4.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.6, Copyright (c), by Zend Technologies
    $ php -f /tmp/test.php
    var tutu aarray(2) {
    ["toto"]=>
    string(1) "a"
    ["titi"]=>
    string(1) "b"
    }
    Array
    (
    [toto] => a
    [titi] => b
    )
    ```

    On a donc bien le même comportement **au niveau de l'interpréteur**.

    J'en déduis que tu devrais donc plutôt chercher du côté de l'intégration à
    ton serveur Web (mod_php pour Apache ou php-fpm ou autre).

    Sébastien

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)