Maison Problème commun système de formation aux examens en ligne de développement php

système de formation aux examens en ligne de développement php

Feb 22, 2020 pm 12:12 PM
php开发 在线考试

système de formation aux examens en ligne de développement php

Système de formation aux examens en ligne pour le développement php

Remarque : cet article vise à enregistrer des idées et des procédures d'apprentissage et de développement. n'a aucune valeur commerciale. Comprendre les idées de développement. L'utilisation commerciale nécessite une deuxième mise à niveau !

(Apprentissage recommandé : formation php)

Le rendu est le suivant :

système de formation aux examens en ligne de développement php

Question affichage de la page d'accueil de la banque

système de formation aux examens en ligne de développement php

Test en ligne des questions du test

système de formation aux examens en ligne de développement php

Statistiques de score

Le but de ce petit projet consiste à mettre en pratique les bases de PHP Knowledge, grâce à des opérations sur les tableaux, les informations sur les questions de test sont stockées et chargées, et des fichiers modèles sont introduits pour réaliser la disposition des appels des données des questions de test.

1. Le petit projet n'utilisant pas de base de données, les questions du test sont stockées dans le fichier PHP sous forme de tableaux :

Remarque : Le code ci-dessous est un chaos très complexe. . Vous pouvez télécharger le code source du programme à la fin de l'article et le consulter dans cet article de blog.

<?php
// 考试题库二
return [   
// 题库标题  
&#39;title&#39; => &#39;PHP基础语法考试题(二)&#39;,   
// 答题时限(秒数) 
&#39;timeout&#39; => 1200,   
// 题库   
&#39;data&#39; => [      
// 判断题 
&#39;binary&#39; => [       
          &#39;name&#39; => &#39;判断题&#39;, 
        // 题型名称
&#39;score&#39; => 24,     
        // 题型分数 
&#39;data&#39; => [          
          1 => [       
          &#39;question&#39; => &#39;在".php"后缀的文件中,所有的PHP代码都只能写在"<?php ?>"标记内。&#39;,               &#39;answer&#39; => &#39;no&#39;            ], 
        2=> [           
            &#39;question&#39; => &#39;标量类型包括布尔型、整型、字符串型和数组型。&#39;,               &#39;answer&#39; => &#39;no&#39;            ], 
        3=> [    
                  &#39;question&#39; => &#39;var_dump是PHP中用于打印变量或表达式的类型与值等相关信息的函数。&#39;,              
         &#39;answer&#39; => &#39;yes&#39;        
            ]        
         ]    
          ],      
        // 单选题  
&#39;single&#39; => [     
            &#39;name&#39; => &#39;单选题&#39;,         &#39;score&#39; => 40
        ,         &#39;data&#39; => [ 
                   1 => [               
        &#39;question&#39; => &#39;下列选项中,不区分大小写的标识符是( )。&#39;,               &#39;option&#39; => [                  &#39;函数名&#39;,&#39;常量名&#39;,&#39;变量名&#39;,&#39;属性名&#39;               ],               &#39;answer&#39; => &#39;A&#39;            ], 2=> [
Copier après la connexion

2. Alors, comment obtenir les données des questions du test ? Importez simplement le fichier

$data=require "./data/1.php";
Copier après la connexion

Notez que le fichier de questions de test ci-dessus est un tableau renvoyé par return Lorsque nous importons le fichier, nous attribuons directement les données du tableau de questions de test à la variable $data. , puis utilisez $ data pour afficher les données de la banque de questions.

3. Fichier de banque de questions variables.

Tous les fichiers de la banque de questions sont placés dans le répertoire /data/ Chaque élément de test correspond à un fichier .php Si vous voulez savoir combien de données de test il y a, c'est-à-dire combien. php il y a, ici nous La fonction glob() est utilisée, et le code est le suivant :

//统计题库目录下的“.php”文件个数,此处要求题库文件名必须是连续的数字$count = count(glob(&#39;./data/*.php&#39;));
Copier après la connexion

La fonction glob() renvoie un tableau de listes de fichiers Le résultat du dump de l'exécution de glob(. ) est la suivante :

array(3) {    [0]=>  string(12) "./data/1.php"    [1]=>  string(12) "./data/2.php"    [2]=>  string(12) "./data/3.php"}
Copier après la connexion

Parce que les noms de fichiers pour stocker les données sont tous des nombres consécutifs, ce qui nous permet de lire plus facilement les informations des questions de test à travers des boucles.

4. Utilisation de fonctions anonymes.

Une fonction anonyme est une fonction sans nom de fonction, également appelée fonction de fermeture. Elle est souvent utilisée pour détruire la valeur des paramètres de fonction. Pour les fonctions définies temporairement, l'utilisation de fonctions anonymes ne nécessite pas de prise en compte. question de noms de fonctions. La fonction anonyme utilisée ici est uniquement à des fins pratiques. Nous pouvons également encapsuler le code suivant dans une fonction fonctionnelle :

$func = function ($data) use(&$func){  $result = [];  foreach ($data as $k=>$v){    //如果是数组,则继续递归,如果是字符串,则转义      $result[$k] = is_array($v) ? $func($v) : (is_string($v) ? toHtml($v) : $v);  }  return $result;};
Copier après la connexion

Utilisez la fonction anonyme pour échapper récursivement les caractères spéciaux des données de la question de test.

5. Échapper aux caractères spéciaux HTML.

Si des balises HTML apparaissent dans les questions du test, elles seront analysées par le navigateur et ne pourront pas être affichées telles quelles. Par conséquent, il est nécessaire d'échapper les caractères aux balises HTML qui peuvent exister dans la question. bank. Le code est le suivant :

//HTML特殊字符转义function toHtml($str){    $str=htmlspecialchars($str,ENT_QUOTES);    return str_replace(&#39; &#39;,&#39; &#39;,$str);}
Copier après la connexion

Ici, nous utilisons la fonction htmlspecialchars() pour échapper aux éventuels caractères spéciaux, afin que lors de la sortie, nous puissions le sortir dans le format souhaité.

La fonction htmlspecialchars() correspondante ne peut pas échapper aux espaces et aux nouvelles lignes. Pour échapper aux espaces, vous devez utiliser la fonction str_replace() pour les remplacer directement. Pour les nouvelles lignes, vous pouvez utiliser la fonction nl2br.

6. return renvoie deux formes de valeur.

Le code spécifique est le suivant :

function getDataInfo($data){    $count = [];            //保存某种题型的题目数量    $score = [];            //每道题的分值    foreach ($data as $k=>$v) {        $count[$k]=count($v[&#39;data&#39;]);        $score[$k]=round($v[&#39;score&#39;]/$count[$k]);    }    return [$count,$score];         //使用list()接收返回值:list($count,$score);顺序依次对应}
Copier après la connexion

Le code utilise enfin return pour renvoyer deux variables de résultat. Pour recevoir ces deux valeurs de retour, vous devez utiliser list(. ) pour recevoir une affectation de tableau, affecte les éléments du tableau aux variables dans l'ordre.

7. Encapsulez les fonctions à utiliser dans des fonctions fonctionnelles pour un appel facile et évitez la duplication de code.

Ici, toutes les fonctions utilisées sont encapsulées dans des fonctions autant que possible. Lorsqu'elles sont utilisées, il suffit d'introduire le fichier de fonction pour faciliter la gestion et améliorer l'utilisation du code.

8. Utiliser des modèles

Après avoir utilisé PHP pour traiter les données, utilisez

//引入HTML模板require &#39;./view/index.html&#39;;
Copier après la connexion

pour introduire le modèle HTML dans le fichier PHP. modèle, nous pouvons également insérer des balises PHP pour générer les données souhaitées et afficher les données de manière dynamique.

在线考试系统请选择题库$v): ?>
         时间:分钟 总分:分开始考试
Copier après la connexion

Sortez directement une variable :

Boucle pour générer un ensemble de variables : $ v) : ?>~~~~~~~

9. Faites attention à l'utilisation de l'opérateur ternaire. :?

当做一些简单的判断输出时,使用三元运算符: ?可以大大的提升效率,简化代码。

<!-- 答题情况 --><td><?=$v ? &#39;对&#39; : &#39;错&#39;?></td><!-- 得分 --><td><?=$v ? $score[$type] : 0?></td>
Copier après la connexion

上述代码中,$v是一个bool值,通过三元运算符我们可以省略一大堆if判断,使代码看上去更加整洁。

10、页面中的计时倒计时、关闭页面提示、未做考题提交提示、考试时间结束自动交卷功能是通过jQuery、javascript来实现的,这里不作说明。

程序源码下载地址:

http://www.seoalphas.com/data/upload/ueditor/20170629/595494a1f01ea.rar

注:php中文网提供大量免费、原创、高清的php视频教程,并且会定期举行php公益培训

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Apprenez étape par étape à développer votre propre site Web de forum en utilisant PHP Apprenez étape par étape à développer votre propre site Web de forum en utilisant PHP Oct 28, 2023 am 08:23 AM

Avec le développement rapide d'Internet et la demande croissante d'échange d'informations, les sites de forum sont devenus une plate-forme sociale en ligne courante. Développer votre propre site Web de forum peut non seulement répondre à vos propres besoins personnalisés, mais également fournir une plate-forme de communication et de partage, bénéficiant à un plus grand nombre de personnes. Cet article vous apprendra étape par étape comment utiliser PHP pour développer votre propre site Web de forum. J'espère qu'il sera utile aux débutants. Tout d’abord, nous devons clarifier certains concepts et préparatifs de base. PHP (HypertextPreproces

Comment utiliser Memcache dans le développement PHP ? Comment utiliser Memcache dans le développement PHP ? Nov 07, 2023 pm 12:49 PM

Dans le développement Web, nous devons souvent utiliser une technologie de mise en cache pour améliorer les performances du site Web et la vitesse de réponse. Memcache est une technologie de mise en cache populaire qui peut mettre en cache n'importe quel type de données et prend en charge une simultanéité élevée et une haute disponibilité. Cet article explique comment utiliser Memcache dans le développement PHP et fournit des exemples de code spécifiques. 1. Installer Memcache Pour utiliser Memcache, nous devons d'abord installer l'extension Memcache sur le serveur. Dans le système d'exploitation CentOS, vous pouvez utiliser la commande suivante

Comment utiliser C++ pour implémenter un système d'examen en ligne simple ? Comment utiliser C++ pour implémenter un système d'examen en ligne simple ? Nov 03, 2023 pm 06:00 PM

Comment utiliser C++ pour implémenter un système d’examen en ligne simple ? Avec le développement rapide de la technologie des réseaux et de l’informatique, l’éducation en ligne et l’apprentissage à distance attirent de plus en plus d’attention. Les systèmes d'examen en ligne sont devenus un outil important permettant aux établissements d'enseignement et aux entreprises d'évaluer les capacités des étudiants et des employés. Cet article explique comment utiliser le langage de programmation C++ pour mettre en œuvre un système d'examen en ligne simple. Tout d’abord, nous devons définir quelques concepts de base et structures de données. Le système d'examen en ligne comprend principalement trois entités principales : les questions de test, les candidats et les examens. Nous pouvons utiliser C++

Comment utiliser Laravel pour développer un système d'examen en ligne Comment utiliser Laravel pour développer un système d'examen en ligne Nov 02, 2023 pm 02:20 PM

Comment utiliser Laravel pour développer un système d'examen en ligne Introduction : Avec le développement rapide d'Internet, les systèmes d'examen en ligne sont de plus en plus favorisés par les écoles, les entreprises, les institutions et les établissements de formation. Le système d'examen en ligne facilite non seulement la tâche des candidats, mais améliore également l'efficacité de l'examen et peut réduire la consommation de papier pendant le processus d'examen. Cet article expliquera comment utiliser le framework Laravel pour développer un système d'examen en ligne simple et pratique. 1. Exigences en matière d'environnement de préparation de projet : PHP&gt;=7.2, Composer, MySQL

Comment améliorer le classement des moteurs de recherche avec le développement du cache PHP Comment améliorer le classement des moteurs de recherche avec le développement du cache PHP Nov 07, 2023 pm 12:56 PM

Comment améliorer le classement des moteurs de recherche grâce au développement du cache PHP Introduction : À l'ère numérique d'aujourd'hui, le classement d'un site Web dans les moteurs de recherche est crucial pour le trafic et l'exposition du site Web. Afin d’améliorer le classement du site Web, une stratégie importante consiste à réduire le temps de chargement du site Web grâce à la mise en cache. Dans cet article, nous explorerons comment améliorer le classement des moteurs de recherche en développant la mise en cache avec PHP et fournirons des exemples de code concrets. 1. Le concept de mise en cache La mise en cache est une technologie qui stocke les données dans un stockage temporaire afin qu'elles puissent être rapidement récupérées et réutilisées. pour le filet

Comment utiliser PHP pour développer la fonction de points membres du système d'épicerie ? Comment utiliser PHP pour développer la fonction de points membres du système d'épicerie ? Nov 01, 2023 am 10:30 AM

Comment utiliser PHP pour développer la fonction de points membres du système d'épicerie ? Avec l’essor du commerce électronique, de plus en plus de personnes choisissent d’acheter des produits de première nécessité en ligne, y compris leurs courses alimentaires. Le système d'épicerie est devenu le premier choix pour de nombreuses personnes, et l'une de ses caractéristiques importantes est le système de points d'adhésion. Le système de points d'adhésion peut attirer les utilisateurs et accroître leur fidélité, tout en offrant aux utilisateurs une expérience d'achat supplémentaire. Dans cet article, nous verrons comment utiliser PHP pour développer la fonction de points d'adhésion du système d'épicerie. Tout d'abord, nous devons créer une table d'adhésion pour stocker les utilisateurs

Comment utiliser PHP pour développer une plateforme de services de tutorat en ligne Comment utiliser PHP pour développer une plateforme de services de tutorat en ligne Oct 28, 2023 am 09:01 AM

Comment utiliser PHP pour développer une plateforme de services de tutorat en ligne Avec le développement rapide d'Internet, les plateformes de services de tutorat en ligne ont attiré de plus en plus l'attention et la demande. Les parents et les étudiants peuvent facilement trouver des tuteurs appropriés grâce à une telle plateforme, et les tuteurs peuvent également mieux démontrer leurs capacités et avantages pédagogiques. Cet article explique comment utiliser PHP pour développer une plateforme de services de tutorat en ligne. Tout d’abord, nous devons clarifier les exigences fonctionnelles de la plateforme. Une plateforme de services de tutorat en ligne doit avoir les fonctions de base suivantes : Système d'inscription et de connexion : les utilisateurs peuvent

Comment implémenter le contrôle de version et la collaboration de code dans le développement PHP ? Comment implémenter le contrôle de version et la collaboration de code dans le développement PHP ? Nov 02, 2023 pm 01:35 PM

Comment implémenter le contrôle de version et la collaboration de code dans le développement PHP ? Avec le développement rapide d'Internet et de l'industrie du logiciel, le contrôle de version et la collaboration en matière de code dans le développement de logiciels sont devenus de plus en plus importants. Que vous soyez un développeur indépendant ou une équipe de développement, vous avez besoin d'un système de contrôle de version efficace pour gérer les modifications de code et collaborer. Dans le développement PHP, il existe plusieurs systèmes de contrôle de version couramment utilisés, tels que Git et SVN. Cet article expliquera comment utiliser ces outils pour le contrôle de version et la collaboration de code dans le développement PHP. La première étape est de choisir celui qui vous convient