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 :

Parcourir un fichier php pour remplacer des morceaux de code


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Août 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Auto entrepreneur

    Informations forums :
    Inscription : Août 2018
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Parcourir un fichier php pour remplacer des morceaux de code
    Bonjour,

    Je souhaiterais remplacer toutes les balises IMG de mon site par des balises IMG contenant les dimensions des images.

    Par exemple <img src="exercices/image001.gif" alt="système équations"> devra être remplacé par <img src="exercices/image001.gif" alt="système équations" width="99" height="48">
    La fonction PHP getimagesize() retourne les dimensions d'une image, mais je butte sur la création d'un script auquel je donnerais le code php et qui me retournerait le nouveau code avec les dimensions des images.

    Est-il possible de faire cela en php?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    à la main mon gars, à la main
    Sinon, il y a plus simple, utiliser le css :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    img {
      width: 99px;
      height: 48px;
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Août 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Auto entrepreneur

    Informations forums :
    Inscription : Août 2018
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Merci c'est gentil mais sur mon site il y a 15 000 images sur 1 500 pages PHP, j'en ai pour des années à la main...

    Je n'ai quasiment jamais mis ces width= height= dans les IMG car ça me faisait gagner du temps et ça marchait bien sans, mais maintenant pour la version mobile AMP ça devient indispensable :-(

    Toute idée est la bienvenue (le site est cmath.fr)

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    à la vache, tu n'as pas utilisé de parser latex pour générer tes équations. Tout est sous forme d'image !!!
    Purée, vois si avec le css cela ne répond pas à ton besoin

    j'adore ce passage
    Citation Envoyé par superfloflo Voir le message
    Je n'ai quasiment jamais mis ces width= height= dans les IMG car ça me faisait gagner du temps et ça marchait bien sans

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu veux récupérer les dimensions de chaque image (je suppose que les images ont des dimensions différentes) et les ajouter sur les balises img, c'est bien ça ?
    Je peux poser la question bête et demander à quoi ça va te servir, vu que les dimensions seront les mêmes que celles de l'image ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Une alternative peut être d'agir sur les éléments de la page avec javascript si tu as un point d'entrée qui permet d'insérer du code.

    Code HTML : 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
    <html>
    <head>
    <script>
    window.onload = function () {
        var el = document.querySelectorAll("img");
     
        for (i = 0; i < el.length; ++i) {
          el[i].width  = el[i].width;
          el[i].height = el[i].height;  
        }    
    }
    </script>
     
    </head>
    <body>
    <img src="image3.jpg"/><br/>
    <img src="image4.jpg"/><br/>
    </body>
    </html>

    Sans le javascript :
    Nom : Capture20190220_001.JPG
Affichages : 327
Taille : 17,7 Ko

    Avec le javascript :
    Nom : Capture20190220_002.JPG
Affichages : 337
Taille : 23,2 Ko
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  7. #7
    Candidat au Club
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Août 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Auto entrepreneur

    Informations forums :
    Inscription : Août 2018
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    rawsrc :
    Je ne vois pas comment le css pourrait m'être utile car cela nécessiterait de créer des classes pour chaque image de dimension différente, de plus je ne sais pas comment le css pourrait me permettre de retrouver automatiquement les dimensions des images

    Celira :
    Oui c'est bien cela et cela va servir à mettre les pages du site mobile aux normes AMP, ce qui améliore grandement l'expérience utilisateur et probablement aussi le référencement. L'outil https://validator.ampproject.org/ retourne "Failed" si les dimensions des images ne sont pas spécifiées. J'imagine que les navigateurs affichent plus rapidement les sites dont les dimensions des images ont été spécifiées par les webmasters, en tout cas au moins sur des sites mobiles amp.

    Badaze :
    Merci, j'adore l'idée d'utiliser du javascript document.querySelectorAll("img") pour sélectionner toutes les images puis les méthodes el[i].widt et el[i].height. Le code ne sera pas exploitable car le but est de mettre les pages aux normes AMP et le javascript personnel n'est pas autorisé avec ces normes car il ralentit le chargement des pages. Je vais creuser cela tout ce même.

    Mais savez vous s'il serait techniquement possible d'utiliser fopen (je n'ai jamais utilisé et ne connais pas les fonctions associées) pour ouvrir un fichier php, puis le parcourir jusqu'à la présence d'un <img>, isoler la chaine <img src='...'> récupérer l'url, récupérer les infos avec getimagesize() puis remplacer <img src='...'> par <amp-img src='...' width= height='...'>?

    Où s'il serait possible de créer une fonction php qui parcourt le code php d'une page donné en argument, sans l'exécuter ni retourner d'erreur? C'est à dire qu'il faudrait que le code php ne soit pas interprété comme du code php, mais comme du simple texte. J'ai vu que eval() existait mais c'est plutôt l'inverse qu'il me faudrait.

  8. #8
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Le js ne fait que lire des éléments présents sur la page. Donc question ralentissement je pense que c’est moins que peanuts. En plus la charge du calcul est sur le client alors qu’avec une solution php comme tu l’envisages toute la charge est sur le serveur.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    J'ai lu un peu la spec AMP et normalement, tu devrais remplacer tous les tags <img /> par <amp-img>...</amp-img>.
    Bref, vu comme t'as implémenté ton site, c'est un travaille colossal de mise à jour. Dans la foulée, et quitte à se lancer dans un truc de fou, je te conseille aussi de reprendre tes équations en latex et y incorporer MathML.

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    On est bien d'accord que le script que tu envisages , ne serais lancé qu'une seule fois pour "convertir" tes balises images ?

    Si ton html est dans des fichiers à part c'est assez simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $doc = new DOMDocument();
    $doc->loadHTMLFile('test.html');
    $imageTags = $doc->getElementsByTagName('img');
     
    foreach($imageTags as $tag) {
        $src =  $tag->getAttribute('src');
        list($width, $height) = getimagesize($src);
        $tag->setAttribute("width",$width);
        $tag->setAttribute("height",$height);
    }
     
    $doc->saveHTMLFile('test-modif.html');
    Il suffit ensuite de boucler sur tous tes fichiers pour tous convertir d'un coup.

    Ca va ouvrir un fichier html , y chercher tous les tag "img", extraire la source l'image , en déterminer la taille et enrichir le tag pour finalement sauvegarder le fichier sous un autre nom.
    Pour bien faire il faudrait surement définir le doctype du document et quelques autres détail , mais l'idée général est là.

    En revanche si ton html est perdu au millieu de fichier PHP ca va être beaucoup plus compliqué.
    Il faudrait via une expression régulière arriver à extraire tous les tags images , puis trouver la sources de l'image dans ce tag.
    Pour finalement refaire un passage sur le fichier et remplacer les tags trouver par la nouvelle version que tu auras créer avec la taille de l'image.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Candidat au Club
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Août 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Auto entrepreneur

    Informations forums :
    Inscription : Août 2018
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Badaze:
    Je suis d'accord que le code javascript va très peu ralentir la page, mais le but étant de respecter la norme AMP (je reconnais que j'aurais du le préciser dès le début), cela ne sera pas compatible. Les pages AMP s'affichent avec un petit éclair dans les résultats de recherche google sur mobile, ce qui augmente le taux de clics, et je suis également persuadé qu'il y a aussi un petit coup de pouce au niveau du référencement.

    Rawsrc :
    Merci. Ne t'inquiète pas trop pour la durée de développement, faire des équations sous forme d'image avec un bon éditeur graphique auquel j'étais habitué (Mathtype, et non pas Paint...) était rapide. J'utilise toutefois à l'occasion un peu de MathML et Latex (par exemple sur cette page https://www.cmath.fr/5eme/fractions/exercice1.php, pour afficher la fraction répondue). Même chose pour remplacer tous les img par des amp-img, c'est un jeu d'enfant avec la fonction "remplacer dans les fichiers d'un dossier" de notepad++. Il n'y aura pas de gros travail de mise à jour si je parviens à ajouter les width et heigh de manière automatisée sur les pages php sur mon ordi ou sur mon serveur.

    Grunk :
    Merci beaucoup! Le code ne fonctionnera pas car je n'ai pas ou quasiment pas de page html statique, le html est systématiquement généré par le php. Du coup, la solution viendra certainement des expressions régulières (que je ne maîtrise quasiment pas). Difficile effectivement, mais en temps passé, ça ne pourra que valoir le coup.

    Je vais continuer de chercher la solution puis la publierai ici car cela pourra être utile à d'autres webmasters dans le futur.

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    tu peux poster le code source d'une de tes page, stp

  13. #13
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je persiste avec l'approche js. C'est pas parfait (au moins chez moi) mais ça affiche les images.

    Code HTML : 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
    22
    23
    24
    25
    26
    27
    28
    <html>
    <head>
    <script>
    window.onload = function () {
     
     var script = document.createElement('script');
     // voir l'image ci-dessous pour le vrai lien vers le fichier.
     script.src = "<a href="https://cdn.ampproject.org/v0.js" target="_blank">https://cdn.ampproject.org/v0.js</a>"; 
     document.head.appendChild(script);
     
     var el = document.querySelectorAll("img");
     for (i = 0; i < el.length; ++i) {
       el[i].width  = el[i].width;
       el[i].height = el[i].height;
       var html     = el[i].outerHTML;
       html         = html.replace('<img','<amp-img layout="responsive"');
       html         = html+'</amp-img>';
       console.log(html);
       el[i].outerHTML = html;
     } 
    }
    </script>
    </head>
    <body>
    <img src="image3.jpg"/><br/>
    <img src="image4.jpg"/><br/>
    </body>
    </html>

    Nom : Capture20190225_002.JPG
Affichages : 295
Taille : 18,4 Ko


    Donne :

    Nom : Capture20190225_001.JPG
Affichages : 300
Taille : 98,5 Ko
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  14. #14
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par badaze Voir le message
    Je persiste avec l'approche js. C'est pas parfait (au moins chez moi) mais ça affiche les images.
    Il perd tout l'intérêt de l'AMP au niveau référencement en faisant comme ça par contre.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    C’est pas faux.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  16. #16
    Candidat au Club
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Août 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Auto entrepreneur

    Informations forums :
    Inscription : Août 2018
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    tu peux poster le code source d'une de tes page, stp

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
    574
    575
    576
    577
    578
    579
    580
    581
    582
    583
    584
    585
    586
    587
    588
    589
    590
    591
    592
    593
    594
    595
    596
    597
    598
    599
    600
    601
    602
    603
    604
    605
    606
    607
    608
    609
    610
    611
    612
    613
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
    647
    648
    649
    650
    651
    652
    653
    654
    655
    656
    657
    658
    659
    660
    661
    662
    663
    664
    665
    666
    667
    668
    669
    670
    671
    672
    673
    674
    675
    676
    677
    678
    679
    680
    681
    682
    683
    684
    685
    686
    687
    688
    689
    690
    691
    692
    693
    694
    695
    696
    697
    698
    699
    700
    701
    702
    703
    704
    705
    706
    707
    708
    709
    710
    <?php
     
    include "../../include/testmobile.php";
     
    $colonne="T0808";
    include "../../include/introexos.php";
     
    echo "<!DOCTYPE html>
    <html lang='fr'>
    <head>
    <title>Calcul trigonométrie troisième</title>
    <meta charset='utf-8'>
    <meta name='author' content='Gouachon Florent'>";
    include "../../include/codeadsensepage.php";
    if ($mobile==0) echo "<script src='https://www.cmath.fr/js/calcjs6.js'></script>";
    echo "<meta name='viewport' content='width=device-width'/>
    <link rel='canonical' href='https://www.cmath.fr/3eme/trigonometrie/exercice7.php'/>
    <meta name=\"description\" content=\"Comment calculer une longueur lorsqu'on a écrit la formule de trigonométrie dans un triangle. Exercice corrigé.\">";
     
    if ($mobile==0){
    	$NumAd="1517236778743";
    	$CodeAd="/15726328/3eme-8-e-d1";
    	include "../../include/dfpexos.php";
    	$type="e";
    	include "../../include/menu.php";
    }
    else{
    	$CodeAd1="/15726328/3eme-8-e-m1";
    	$NumAd1="1517496337194";
    	$CodeAd2="/15726328/3eme-8-e-m2";
    	$NumAd2="1517496358745";
    	include "../../include/dfpexos-mob.php";
    	echo "<link rel='stylesheet' href='https://www.cmath.fr/cssexos2.css'>
    	<style>
    		article ul {list-style-type:none;width:260px;padding:0px;}
    		article ul li {display:inline-block;width:22px;margin:0;color:black;text-align:center;border:1px solid white;border-radius:5px;background:#F2F2F2;border:1px solid black;}
    		div.liensexos1 {width:250px;margin-left:auto;margin-right:auto;}
    		div.liensexos1 a {color:black;text-decoration:none;}
    		div.liensexos4 {display:inline-block;width:46px;padding:5px;background:#F2F2F2;border:1px solid black;border-radius:10px;text-align:center;}
    		div.liensexos5, div.liensexos6 {display:inline-block;width:34px;padding:5px;text-align:center;background:#E6E6E6;border:1px solid black;border-radius:10px;}
    	</style>
    	</head>
    	<body>
    		<header>
    		<span class='h20'><span class='bleu'>C</span><span class='noir'>omprendre les</span> <span class='bleu'>math</span><span class='noir'>s<span class='gris'>!</span></span></span>
    		</header>
    		<nav>
    			<ul>
    				<li><a href='https://www.cmath.fr'><img src='../../images/menucoursmaison.gif' width=32 height=18 alt='Comprendre les maths'></a></li>
    				<li><a href='https://www.cmath.fr/3eme/index.php'><img src='../../images/menucours3eme.gif' width=32 height=18 alt='Maths troisième'></a></li>
    				<li><a href='https://www.cmath.fr/3eme/trigonometrie/index.php'><img src='../../images/menucoursch.gif' width=32 height=18 alt='La trigonométrie'></a></li>
    			</ul>
    		</nav>";
    	if ($acces==0) include "../../include/pub-exercices-mob.php";
    }
     
    echo "<article class='main'>";
     
    if ($mobile==0){
    	echo "<h1>Exercices de troisième sur la trigonométrie</h1>";
    }
    else{
    	echo "<h1>Exercices sur la trigonométrie</h1>";
    }
     
     
    // Récuperation du numéro de la question et de l'éventuelle réponse 
     
     
    $question=$ordrexos{726};
    $etatreponse=$tempsenregistre=0;
    if ($question=="") $question=rand(1,3);
    if (isset($_POST['a'])){
       $etatreponse=1;
       $a=$_POST['a'];
       for ($i=0;$i<strlen($a);$i++) if ($a{$i}==".") $a{$i}=",";
       $question=$_POST['question'];
       $etatc{63}=$etatc{62};
       $etatc{62}=$etatc{61};
       if (($a!="") and ($question==1 and ($a=="4,5" or $a=="4,50")) or ($question==2 and $a=="3,8") or ($question==3 and $a=="6,4")) $etatreponse=2;
       if ($etatreponse==1){
       	   	$etatc{61}=1;
    		$ladate=date('dmy');	
    		$etatc{64}=$ladate{0};
    		$etatc{65}=$ladate{1};
    		$etatc{66}=$ladate{2};
    		$etatc{67}=$ladate{3};
    		$etatc{68}=$ladate{4};
    		$etatc{69}=$ladate{5};
    		$etatreponse=1;
    		$reps="q:$question - a:$a";
    	}
    	else{
    		$etatc{61}=2;
    		$etatreponse=2;
    	}     
       	$numero="7";
    	$numexo=726;
    	$chapitre="3eme-8";
    	$type="box";
    	include "../../include/codeexos.php";
    }
     
     
     
    // Affichage nombre bonnes réponses et barre d'exercices
     
    $numeroexo=7;
    if ($mobile==0){
    	include "../../include/barresexos/b18.php";
    }
    else{
    	include "../../include/barresexos/b18-mob.php";
    }
     
     
    // Exercice
     
    if ($etatreponse==0){	 
    	echo "<form action='exercice7.php' method='post'>";
    	if ($question==1){
    		echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-1.gif' class='middle' alt='calcul cosinus'>.<br /><br />
    		Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur AB.<p>
    		<input type='text' name='a' size='4' maxlength='4'> cm  ";
    	}
    	if ($question==2){
    		echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-2.gif' class='middle' alt='calcul sinus'>.<br /><br />
    		Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur AC.<p>
    		<input type='text' name='a' size='4' maxlength='4'> cm  ";
    	}
    	if ($question==3){
    		echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-3.gif' class='middle' alt='calcul tangente'>.<br /><br />
    		Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur BC.<p>
    		<input type='text' name='a' size='4' maxlength='4'> cm  ";
    	}
    	echo "</p><input type='hidden' name='question' value='$question'> <input type='submit' value='répondre'></form><br />";
    	$ad=0;
    	if (isset($_GET["ad"])) $ad=$_GET["ad"];
    	if ($ad==0){
    		echo "<p style='font-size:13px;'>Attention il y a un piège. <a href='exercice7.php?ad=1'>Clique ici</a> pour afficher le piège.</p><br />";
    	}
    	else{
    		echo "<p style='font-size:13px;'>Il faut faire le calcul en une seule étape sur la calculatrice. Si tu tiens absolument à le faire
    		en deux étapes tu dois utiliser au moins 3 chiffres après la virgule pour le résultat du premier calcul. (<a href='exercice7.php?ad=0'>cacher</a>)</p><br />";
    	}
    }
    else{
    	if ($etatreponse==2){
    		if ($i==18 and $j==18 and $alerte{53}==0){
    			echo '<script>window.alert("Super!!!\n\nTu as réussi tous les exercices!!!\n\nBravo!!!");</script>';
    			$alerte{53}=1;
    			$requete=$connexion->prepare("UPDATE ecm SET alerte='$alerte' WHERE id= :ip");
    			$requete->execute(array('ip' => $ip));
    		}
    		if ($question==1){
    		   	echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-1.gif' class='middle' alt='calcul cosinus'>.<br /><br />
    			Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur AB. <br /><br />
    			Réponse :<br /><span class='vert'>Juste! AB=4,5cm.<br /><br /></span></p>";	
    		}
    		if ($question==2){
    			echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-2.gif' class='middle' alt='calcul sinus'>.<br /><br />
    			Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur AC. <br /><br />
    			Réponse :<br /><span class='vert'>Juste! AC=3,8cm.<br /><br /></span></p>";
    		} 
    		if ($question==3){
    		   	echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-3.gif' class='middle' alt='calcul tangente'>.<br /><br />
    			Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur BC.<br /><br />
    			Réponse :<br /><span class='vert'>Juste! BC=6,4cm.<br /><br /></span></p>";
    		}
    	}
    	else{
    		if ($question==1){
    		   	echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-1.gif' class='middle' alt='calcul cosinus'>.<br /><br />
    			Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur AB.<br /><br />
    			Réponse :<br /><span class='rouge'>Faux!  ";
    			if ($a=='4,4'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as effectué les bons calculs mais tu n'as pas calculé l'arrondi à la fin.<br /><br />
    				AB=7&times;cos(50)&divide;1.<br /><br />
    				AB mesure environ 4,4995 cm.<br /> L'arrondi à 0,1 près est 4,5cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>";	
    			}
    			else{
    			if ($a=='350'){
    				echo "Tu as répondu $a cm.<br><br>
    				Effectivement c'est bien une multiplication qu'il faut faire mais attention cos(50) est un nombre qui n'est pas 
    				égal à 50. On obtient cos(50) avec la touche cos de la calculatrice.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			else{
    			if ($a==''){
    				echo "Tu n'as rien répondu.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='4,49'){
    				echo "Tu as répondu $a cm.<br><br>
    				Bravo tu as effectué le bon calcul et tu as trouvé le bon résultat.<br><br>
    				Mais il était demandé un arrondi <strong>à 0,1 près</strong> et tu as donné un arrondi à 0,01 près.<br><br>
    				La réponse attendue était AB&asymp;4,5cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='6,75' or $a=='6,7' or $a=='6,8'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 7&times;cos(50). C'est très bien.<br><br>
    				Mais ta calculatrice prend des angles dans une mauvais unité de mesure (en radians au lieu de degrés). Tu dois lire le manuel de ta calculatrice afin qu'elle calcule les angles en degrés.<br><br>
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> en degrés on obtient AB=4,5cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='0,1'){
    				echo "Tu as répondu $a cm.<br><br>
    				L'arrondi à 0,1 près n'est pas 0,1. Tu n'as pas compris ce qu'est un arrondi. Tu devrais revoir les <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondis</a>.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='1'){
    				echo "Tu as répondu $a cm.<br><br>
    				C'est faux car cos(50)&asymp;0,64 et 1&divide;7&asymp;0,14.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='7,1'){
    				echo "Tu as répondu $a cm.<br><br>
    				C'est faux car cos(50)&asymp;0,64 et 7,1&divide;7&asymp;1,01.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='4,2'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé cos(50) avec la calculatrice et tu as obtenu environ 0,64278.<br><br>
    				Puis tu as calculé 0,6&times;7.<br><br>
    				C'est bien <strong>tu as effectué les bons calculs</strong> mais comme <strong>tu as utilisé un arrondi très imprécis</strong> pour 0,64278 et que tu l'as multiplié par 7 le résultat final est trop imprécis et au final <strong>faux</strong>.<br><br>
    				Pour éviter ce genre d'erreur il faut de préférence demander directement 7&times;cos(50) à la calculatrice.<br /><br />
    				Si tu tiens vraiment à faire le calcul en deux fois alors utilise beaucoup de chiffres après la virgule pour le résultat du premier calcul.<br /><br />
    				AB=7&times;cos(50)&asymp;4,5cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='10,9'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 7&divide;cos(50).<br><br>
    				C'est faux car par exemple 5=10&divide;2. Si on veut retrouver le nombre du haut (10) à partir des deux autres il faut les multiplier et non pas les diviser! (5&times;2=10).<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='6,7'){
    				echo "Tu as répondu $a cm.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			else{
    				echo "Tu as répondu $a cm.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-1.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AB on commence par écrire cos(50) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-1-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-1-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-1-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AB=7&times;cos(50)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AB=4,5cm.</p><br /></span>";
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    		}
    		if ($question==2){
    			echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-2.gif' class='middle' alt='calcul sinus'>.<br /><br />
    			Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur AC.<br /><br />
    			Réponse :<br /><span class='rouge'>Faux! ";
    			if ($a==''){
    				echo "Tu n'as rien répondu.<br /><br />
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AC on commence par écrire sin(20) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-2-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-2-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-2-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AC&asymp;3,8cm.</p><br /></span>";	
    			}
    			else{
    			if ($a=="3,7"){
    				echo "Tu as répondu 3,7cm alors que la bonne réponse est 3,8cm.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>
    				Si tu as répondu 3,7 c'est que tu as d'abord calculé sin(20), tu as obtenu 0,3420, puis tu as effectué 0,24&times;11, tu as obtenu 3,74 et tu as arrondi ce résultat à 3,7.<br><br>
    				C'est imprécis car tu as utilisé un arrondi pour effectuer le deuxième calcul. Pour obtenir un meilleur résultat tu devrais effectuer sin(20)&times;11 en une seule fois à la calculatrice, 
    				ou utiliser un grand nombre de chiffres après la virgule dans le résultat du premier calcul.<br><br>
    				Pour calculer AC on commence par écrire sin(20) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-2-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-2-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-2-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AC&asymp;3,8cm.</p><br /></span>";	
    			}
    			else{
    			if ($a==220){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as effectué la bonne opération (une multiplication) mais attention 11&times;sin(20) n'est pas égal à 11&times;20.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on obtient AC&asymp;3,8cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=="0,6" or $a==",6"){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as certainement effectué 11&divide;20.<br><br>
    				D'une part ce n'est pas le bon calcul à effectuer et d'autre part 20 ce n'est pas la même chose que sin(20).<br><br>
    				sin(20) est un nombre que l'on obtient avec une calculatrice.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AC on commence par écrire sin(20) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-2-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-2-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-2-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AC&asymp;3,8cm.</p><br /></span>";
    			}
    			else{
    			if ($a=="3,76"){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as effectué le bon calcul mais tu as donné un arrondi à 0,01 près (2 chiffres après la virgule) alors qu'il
    				était demandé un arrondi à 0,1 près (1 chiffre après la virgule).<br /><br />
    				La réponse attendue était 3,8.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=="10" or $a=="10,0"){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 11&times;sin(20). C'est très bien.<br><br>
    				Mais ta calculatrice prend des angles dans une mauvais unité de mesure (en radians au lieu de degrés). Tu dois lire le manuel de ta calculatrice afin qu'elle calcule les angles en degrés.<br><br>
    				AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> en degrés on a finalement AC=3,8cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='32,2'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 11&divide;sin(20).<br><br>
    				C'est faux car par exemple 5=10&divide;2. Si on veut retrouver le nombre du haut (10) à partir des deux autres il faut les multiplier et non pas les diviser! (5&times;2=10).<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AC on commence par écrire sin(20) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-2-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-2-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-2-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AC&asymp;3,8cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='10,3'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 11&times;cos(20) alors qu'il fallait calculer 11&times;<strong>sin</strong>(20).<br /><br />
    				AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on obtient AC&asymp;3,8cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='3,3'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé sin(20) avec la calculatrice et tu as obtenu environ 0,34202.<br><br>
    				Puis tu as calculé 0,3&times;11.<br><br>
    				C'est bien <strong>tu as effectué les bons calculs</strong> mais comme <strong>tu as utilisé un arrondi très imprécis</strong> pour 0,34202 et que tu l'as multiplié par 11 le résultat final est trop imprécis et au final <strong>faux</strong>.<br><br>
    				Pour éviter ce genre d'erreur il faut de préférence demander directement 11&times;sin(50) à la calculatrice.<br /><br />
    				Si tu tiens vraiment à faire le calcul en deux fois alors utilise beaucoup de chiffres après la virgule pour le résultat du premier calcul.<br /><br />
    				AC=11&times;sin(20)&asymp;3,8cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='0,3'){
    				echo "Tu as répondu $a cm.<br><br>
    				0,3 est un arrondi à 0,1 près de sin(20). Ce n'est pas ce qui était demandé.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AC on commence par écrire sin(20) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-2-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-2-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-2-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AC&asymp;3,8cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='1,8'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 20&divide;11.<br><br>
    				Attention sin(20) est un nombre qui n'est pas égal à 20. On l'obtient avec la touche \"sin\" d'une calculatrice.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AC on commence par écrire sin(20) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-2-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-2-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-2-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AC&asymp;3,8cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='4'){
    				echo "Tu as répondu $a cm.<br><br>
    				4 est un arrondi à 1 près de AC mais il était demandé un arrondi <strong>à 0,1 près</strong>.<br><br>
    				Un arrondi à 0,1 près contient un chiffre après la virgule.<br><br>
    				AC&asymp;3,8cm.<br><br></span></p>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    				echo "Tu as répondu $a cm.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-2.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer AC on commence par écrire sin(20) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-2-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-2-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-2-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient AC=11&times;sin(20)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement AC&asymp;3,8cm.</p><br /></span>";
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    			}
    		}
    		if ($question==3){
    		   	echo "<p><strong>Exercice 7</strong><br />On sait que <img src='exercices/ex5-3.gif' class='middle' alt='calcul tangente'>.<br /><br />
    			Donne un <a href='https://www.cmath.fr/CM1/nombresdecimaux/cours.php#ar'>arrondi</a> à 0,1 près de la longueur BC.<br /><br />
    			Réponse :<br /><span class='rouge'>Faux!  ";
    			if ($a==''){
    				echo "Tu as répondu $a cm.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";					
    			}
    			else{
    			if ($a=='195'){
    				echo "Tu as répondu $a cm.<br /><br />
    				Tu as calculé 3&times;65.<br /><br />
    				Effectivement c'est bien une multiplication qu'il faut faire mais il faut calculer 3&times;tan(65) et ce n'est pas la même
    				chose car tan(65) n'est pas égal à 65.<br /><br />
    				Il faut utiliser la touche \"tan\" de ta calculatrice.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on obtient BC&asymp;6,4cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>";					
    			}
    			else{
    			if ($a=='6,5'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as effectué le bon calcul mais tu t'es trompé dans l'arrondi.<br><br>
    				BC=3&times;tan(65). <br /><br />
    				Avec une calculatrice on obtient 6,433520761528....<br /><br />
    				Pour arrondir à 0,1 près on doit écrire le résultat avec un chiffre après la virgule.<br /><br />
    				Pour cela on regarde le deuxième chiffre après la virgule (3).<br /><br />
    				Si ce chiffre est plus petit que 5 on arrondi à 6,4 sinon on arrondi à 6,5.<br /><br />
    				Comme 3 est plus petit que 5 l'arrondi de BC à 0,1 près est 6,4cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='6,43'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as effectué le bon calcul mais tu as donné un arrondi à 0,01 près alors que l'arrondi était demandé à 0,1 près.<br /><br />
    				Un arrondi à 0,1 près ne contient qu'un seul chiffre après la virgule.<br /><br />
    				La réponse attendue était BC=6,4cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='-4,4' or $a=='-4,41' or $a=='4,4' or $a=='4,41'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 3&times;tan(65). C'est très bien.<br><br>
    				Mais ta calculatrice prend des angles dans une mauvais unité de mesure (en radians au lieu de degrés). Tu dois lire le manuel de ta calculatrice afin qu'elle calcule les angles en degrés.<br><br>
    				BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> en degrés on obtient BC&asymp;6,4cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='1,4'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 3&divide;tan(65).<br><br>
    				C'est faux car par exemple 5=10&divide;2. Si on veut retrouver le nombre du haut (10) à partir des deux autres il faut les multiplier et non pas les diviser! (5&times;2=10).<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='21,6'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 65&divide;3.<br><br>
    				Attention tan(65) est un nombre qui est différent de 65. On l'obtient avec la touche \"tan\" d'une calculatrice.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='6,3'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé 3&times;2,1.<br><br>
    				C'est bien tu as effectué les bons calculs mais comme tu as utilisé un arrondi très imprécis pour 2,1445 et que tu l'as multiplié par 3 le résultat final est faux.<br><br>
    				Pour éviter ce genre d'erreur tu peux essayer de demander 3&times;tan(65) en une seule fois à la calculatrice.<br><br>
    				Si tu tiens vraiment à effectuer le calcul en deux fois alors il faut utiliser beaucoup de chiffres après la virgule pour le résultat du premier calcul.<br><br>
    				BC=3&times;tan(65)&asymp;6,4cm.</p><br /></span>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>";
    			}
    			else{
    			if ($a=='4,4'){
    				echo "Tu as répondu $a cm.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='0,2'){
    				echo "Tu as répondu $a cm.<br><br>
    				C'est faux car tan(65)&asymp;2,14 et 0,2&divide;3&asymp;0,07.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='2,1'){
    				echo "Tu as répondu $a cm.<br><br>
    				Effectivement tan(65)&asymp;2,1 mais ce n'est pas ce qui était demandé!<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";
    			}
    			else{
    			if ($a=='0,7'){
    				echo "Tu as répondu $a cm.<br><br>
    				Tu as calculé tan(65)&divide;3.<br><br>
    				C'est faux car par exemple 5=10&divide;2. Si on veut retrouver le nombre du haut (10) à partir des deux autres il faut les multiplier et non pas les diviser! (5&times;2=10).<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";
    			}
    			else{
    				echo "Tu as répondu $a cm.<br><br>
    				<video width='100%' controls='controls'><source src='videos/e-726-3.mp4' type='video/mp4' /></video><br><br>
    				Pour calculer BC on commence par écrire tan(65) sur 1 de manière à avoir une égalité de deux fractions.</p>
    				<p class='centre'><img src='exercices/ent5-3-1.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on cache la valeur recherchée.</p>
    				<p class='centre'><img src='exercices/ent5-3-2.gif' alt='calcul' class='middle'></p>
    				<p class='rouge'>Puis on réalise un <a href='https://www.cmath.fr/5eme/proportionnalite/cours.php#pec'>produit en croix</a> en dessinant une flèche qui dirige vers la valeur manquante.</p>
    				<p class='centre'><img src='exercices/ent5-3-3.gif' alt='calcul' class='middle'><br /><br /></p>
    				<p class='rouge'>On obtient BC=3&times;tan(65)&divide;1.<br /><br />
    				Avec une <a href='http://calculatrice.info/calculatrice-scientifique.html' target='_blank'>calculatrice</a> on a finalement BC&asymp;6,4cm.</p><br /></span>";
    			}	
    			}	
    			}	
    			}	
    			}	
    			}	
    			}
    			}
    			}
    			}
    			}
    			}
    		}
    	}
    }
     
    // Publicité mobile
    if ($acces==0 and $mobile==1)  include "../../include/pub-exos-mob.php";
     
    // Affichage de l'état de l'exercice 
    $ind=($numeroexo-1)*10;
    $indp1=$ind+1;
    $indp2=$ind+2;
    $indp3=$ind+3;
    include '../../include/etatexo.php';
     
    // Liens directs
    $ldclasse1=8;
    $ldnbliens=6;
    $ldvideos=1;
    $ldquestions=1;
    $ldjeux=0;
    $ldsuivant=$numeroexo+1;
    include '../../include/liensdirects.php';
     
    // Pub premium
    include '../../include/pubpremium.php';
     
    // Contenu correspondant
    if ($contenucorrespondant==1) include '../../include/contenucorrespondant.php';
     
    // Fin de page
    echo "</article>";
     
    if ($mobile==0) include '../../include/aside.php';
     
    include "../../include/google-analytics.php";
     
    ?>
     
    </body>
    </html>

  17. #17
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    purée, ça faisait très longtemps que je n'avais pas vu un code aussi monolithique.
    j'ai beau retourner le problème dans tous les sens, je ne vois pas de fonction magique qui ferait le taf et surtout qui gérerait tous les cas de figure.
    Avec près de 1500 pages, il aurait fallu se poser sur un coin de table dès que tu passais la cinquantaine de pages et concevoir un système de type CMS afin de briser l'aspect monolithique qui s'avère être totalement intenable dès qu'il y a un poil de maintenance à faire.
    A mon avis, il n'y a pas de solution simple et surtout rapide.
    C'est un travail de titan, je dois le reconnaître et en plus quitte à reprendre cet aspect, je pense qu'il faudrait repenser intégralement ton site pour éviter ce genre d’écueil à l'avenir.
    Je sais, ça pique mais quoique tu fasses ou choisisses comme option, tu n'y couperas pas à terme.

    Le mieux c'est que tu attaque la reprise progressive de ton site à ton rythme et que les deux systèmes coexistent : un dynamique et un monolithique, le temps de porter le monolithique vers le dynamique.

    Bon courage, parce que là tu vas en avoir besoin.

  18. #18
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Ah oui.
    Bon courage.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  19. #19
    Candidat au Club
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Août 2018
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Auto entrepreneur

    Informations forums :
    Inscription : Août 2018
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    J'ai trouvé la solution à mon problème!

    Il faut utiliser la fonction PHP file_get_content() dont j'ignorais et ne soupçonnais pas l'existence.

    Cette fonction retourne du code PHP sous la forme d'une chaîne de caractères, que je peux ensuite parcourir jusqu'à isoler les balises images puis récupérer les dimensions avec getimagesize(). J'obtiens un nouveau code qui contient les dimensions des images puis je place le nouveau code dans l'ancien fichier avec file_put_content(), fopen() et fwrite().

    Je publie mon code dès fois que cela puisse être utiles à d'autres personnes!

    Merci pour vos messages d'aide, et à l'occasion, pensez à aller réviser les maths sur mon site!!!

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <?php
     
    $classe='3eme';
    $chapitre='trigonometrie';
    $page='exercice7.php';
     
    $adresse="$classe/$chapitre/$page";
    $code = file_get_contents("$adresse");
     
    echo "
    <html>
    <head>
    	<title>Ajout des dimensions des images</title>
    </head>
    <body>";
     
    $longueurcode=strlen($code);
    $listechainesaremplacer="";
     
    for ($i=0;$i<$longueurcode-10;$i++){
    	if ($code{$i}=="i" and $code{$i+1}=="m" and $code{$i+2}=="g" and $code{$i+3}==" " and $code{$i+4}=="s" and $code{$i+5}=="r" and $code{$i+6}=="c"){
    		$adresseimage="";
    		$j=$i+9;
    		while ($code{$j}!="'"){
    			$adresseimage=$adresseimage.$code{$j};
    			$j++;
    		}
    		$urlimage="$classe/$chapitre/$adresseimage";
    		list($longueur,$hauteur) = getimagesize($urlimage);
    		$chainearemplacer="img src='$adresseimage'";
    		// Vérification si la chaine n'a pas déjà été remplacée dans le document
    		$dejaremplace=0;
    		$tableau= explode("*", $listechainesaremplacer);
    		$longueurtableau=count($tableau);
    		for ($k=0;$k<$longueurtableau+1;$k++){
    			$tk=$tableau[$k];
    			if ($tableau[$k]=="$chainearemplacer") $dejaremplace=1;
    		}
    		// Si la chaine n'a pas déjà été remplacée alors la remplacer
    		if ($dejaremplace==0){
    			$nouvellechaine="img src='$adresseimage' width='$longueur' height='$hauteur'";
    			$code=str_replace("$chainearemplacer", "$nouvellechaine", "$code");
    			echo "La chaine <span style='color:orange'>$chainearemplacer</span> a été remplacée par <span style='color:green;'>$nouvellechaine</span><br>";
    			$listechainesaremplacer="$listechainesaremplacer"."*"."$chainearemplacer";
    			$i=$i+20;
    		}
    	}
    }	
     
    $tableau=explode("*", $listechainesaremplacer);
    $longueurtableau=count($tableau);
     
    echo "<br>Nombres d'images remplacées : <strong>$longueurtableau</strong><br><br>";
     
    // Vider le fichier existant et insérer le nouveau code 
     
    file_put_contents("$adresse", '');
    $fichier=fopen("$adresse",'w+');
    fwrite($fichier,$code);
    fclose($fichier);
     
     
    echo "
    </body>
    </html>";
     
    ?>

  20. #20
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    file_get_content() ramène le contenu d'un fichier quel que soit ce contenu; texte, code php, données csv, etc...

    A ce que je vois tu as fait un programme qui va modifier le code source des pages php. Même si cela te convient ce n'est pas une bonne implémentation car ton code est monolitique. En effet, pour ne donner qu'un exemple, il suffit que dans ton code il y ait un espace en plus entre img et src pour que cela ne fonctionne plus.

    Quant à réviser les maths. Je suis une cause perdue.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. parcourir un fichier XML pour recuperer des information
    Par samerkouta dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 05/10/2009, 11h02
  2. Boucle pour remplacer des mots ds un fichiers
    Par dinozo13 dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 21/07/2008, 14h34
  3. [RegEx] Pour remplacer des identifiants de fichiers incorporés par leur valeur
    Par Christophe Charron dans le forum Langage
    Réponses: 12
    Dernier message: 23/08/2007, 08h54
  4. Réponses: 4
    Dernier message: 21/08/2007, 14h09
  5. Recherche d'un script PHP pour renommer des fichiers en masse
    Par pekka77 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 19/11/2006, 23h43

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