ホームページ よくある問題 PHP開発オンライン試験トレーニングシステム

PHP開発オンライン試験トレーニングシステム

Feb 22, 2020 pm 12:12 PM
PHP開発 オンライン試験

PHP開発オンライン試験トレーニングシステム

#php オンライン試験トレーニング システムの開発

注: この記事は、学習と開発のアイデアと手順を記録することを目的としています。商業的価値はありません。開発のアイデアを理解してください。商用利用するには 2 回目のアップグレードが必要です。

(推奨される学習:

php トレーニング )

レンダリングは次のとおりです:


PHP開発オンライン試験トレーニングシステム

質問銀行ホームページの表示

PHP開発オンライン試験トレーニングシステム

テスト問題のオンライン テスト

PHP開発オンライン試験トレーニングシステム

スコア統計

目的この小さなプロジェクトを通過することは、PHP ナレッジの基礎を練習し、配列操作によるテスト問題情報の保存と読み込みを実現し、テンプレート ファイルを導入し、テスト問題データの呼び出しレイアウトを実現することです。

1. この小規模プロジェクトではデータベースを使用しないため、テスト問題は配列形式で PHP ファイルに保存されます。コードの一部は次のとおりです:

注: 以下のコードは非常に混乱しています。 。記事の最後にあるプログラムのソース コードをダウンロードして、このブログ投稿と照らし合わせて表示できます。

<?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=> [
ログイン後にコピー

2. では、テスト問題データを取得するにはどうすればよいでしょうか?ファイルをインポートするだけです

$data=require "./data/1.php";
ログイン後にコピー

上記のテスト問題ファイルは return によって返される配列であることに注意してください。ファイルをインポートするとき、テスト問題の配列データを $data 変数に直接割り当てます。をクリックし、$dataを操作して問題バンクのデータを表示します。

3. 可変質問バンク ファイル。

すべての問題バンク ファイルは /data/ ディレクトリに配置されます。各テスト項目は .php ファイルに対応します。テスト データの量、つまり .php ファイルの数を知りたい場合は、 php ファイルがありますが、ここでは glob() 関数が使用されており、コードは次のとおりです:

//统计题库目录下的“.php”文件个数,此处要求题库文件名必须是连续的数字$count = count(glob(&#39;./data/*.php&#39;));
ログイン後にコピー

glob() 関数はファイル リストの配列を返します。関数ダンプは次のとおりです。


array(3) {    [0]=>  string(12) "./data/1.php"    [1]=>  string(12) "./data/2.php"    [2]=>  string(12) "./data/3.php"}
ログイン後にコピー

Because データを格納するファイル名はすべて連番になっているため、ループを通じてテスト問題情報を読み取ることが容易になります。

4. 匿名関数の使用。

匿名関数は、関数名のない関数であり、クロージャ関数とも呼ばれます。関数パラメータの値を破棄するためによく使用されます。一時的に定義された関数の場合、匿名関数の使用を考慮する必要はありません。関数名の競合に関する質問です。ここでの匿名関数の使用は、純粋に練習目的です。次のコードを関数関数にカプセル化することもできます:


$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;};
ログイン後にコピー

匿名関数を使用して、テスト問題データ内の特殊文字を再帰的にエスケープします。

5. HTML 特殊文字をエスケープします。

試験問題中にHTMLタグが出現した場合、ブラウザで解析されてそのまま出力できないため、問題中に存在する可能性のあるHTMLタグを文字エスケープする必要があります。


//HTML特殊字符转义function toHtml($str){    $str=htmlspecialchars($str,ENT_QUOTES);    return str_replace(&#39; &#39;,&#39; &#39;,$str);}
ログイン後にコピー

ここでは、出力時に必要な形式で出力できるように、関数 htmlspecialchars() を使用して特殊文字の可能性をエスケープします。

対応する htmlspecialchars() 関数では、スペースと改行をエスケープできません。スペースをエスケープするには、str_replace() 関数を使用してそれらを直接置換する必要があります。改行の場合は、nl2br 関数を使用できます。

6. return は 2 つの値形式を返します。

具体的なコードは次のとおりです:


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);顺序依次对应}
ログイン後にコピー

コードは最後に return を使用して 2 つの結果変数を返します。これら 2 つの戻り値を受け取るには、 list( を使用する必要があります。 ) 1 つの配列割り当てを受け取ると、配列内の要素が順番に変数に割り当てられます。

7. 簡単に呼び出せるように、使用する関数を関数関数にカプセル化し、コードの重複を避けます。

ここでは、使用するすべての関数を可能な限り関数にカプセル化し、使用する場合は関数ファイルを導入するだけで管理が容易になり、コードの利用率が向上します。

8. テンプレートを使用する

PHP を使用してデータを処理した後、

//引入HTML模板require &#39;./view/index.html&#39;;
ログイン後にコピー

を使用して PHP ファイルに HTML テンプレートを導入します。テンプレート、PHP タグを挿入して目的のデータを出力し、データを動的に表示することもできます。

在线考试系统请选择题库$v): ?>
         时间:分钟 总分:分开始考试
ログイン後にコピー

変数を直接出力:

変数セットを出力するループ: $ v) : ?>~~~~~~~

9. 三項演算子の使用に注意してください。 :?

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

<!-- 答题情况 --><td><?=$v ? &#39;对&#39; : &#39;错&#39;?></td><!-- 得分 --><td><?=$v ? $score[$type] : 0?></td>
ログイン後にコピー

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

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

程序源码下载地址:

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

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

以上がPHP開発オンライン試験トレーニングシステムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP開発でMemcacheを使用するにはどうすればよいですか? PHP開発でMemcacheを使用するにはどうすればよいですか? Nov 07, 2023 pm 12:49 PM

Web 開発では、Web サイトのパフォーマンスと応答速度を向上させるためにキャッシュ テクノロジを使用する必要があることがよくあります。 Memcache は、あらゆる種類のデータをキャッシュでき、高い同時実行性と高可用性をサポートする一般的なキャッシュ テクノロジです。この記事では、PHP 開発で Memcache を使用する方法を紹介し、具体的なコード例を示します。 1. Memcache のインストール Memcache を使用するには、まずサーバーに Memcache 拡張機能をインストールする必要があります。 CentOS オペレーティング システムでは、次のコマンドを使用できます。

PHP を使用して独自のフォーラム Web サイトを開発する方法を段階的に説明します。 PHP を使用して独自のフォーラム Web サイトを開発する方法を段階的に説明します。 Oct 28, 2023 am 08:23 AM

インターネットの急速な発展と人々の情報交換に対する需要の高まりに伴い、フォーラム Web サイトは一般的なオンライン ソーシャル プラットフォームになりました。独自のフォーラム Web サイトを開発すると、個人のニーズを満たすだけでなく、コミュニケーションと共有のためのプラットフォームを提供して、より多くの人々に利益をもたらすことができます。この記事では、PHP を使用して独自のフォーラム Web サイトを開発する方法を段階的に説明します。初心者にとって役立つことを願っています。まず、いくつかの基本的な概念と準備を明確にする必要があります。 PHP (ハイパーテキストプリプロセス)

C++ を使用して簡単なオンライン試験システムを実装するにはどうすればよいですか? C++ を使用して簡単なオンライン試験システムを実装するにはどうすればよいですか? Nov 03, 2023 pm 06:00 PM

C++ を使用して簡単なオンライン試験システムを実装するにはどうすればよいですか?ネットワーク技術とコンピューターサイエンスの急速な発展に伴い、オンライン教育と遠隔教育はますます注目を集めています。オンライン試験システムは、教育機関や企業にとって学生や従業員の能力を評価するための重要なツールとなっています。この記事では、C++ プログラミング言語を使用して、簡単なオンライン試験システムを実装する方法を紹介します。まず、いくつかの基本的な概念とデータ構造を定義する必要があります。オンライン試験システムには主に、試験問題、受験者、試験という 3 つの主要な要素が含まれています。 C++を使用できます

Laravel を使用してオンライン試験システムを開発する方法 Laravel を使用してオンライン試験システムを開発する方法 Nov 02, 2023 pm 02:20 PM

Laravel を使用してオンライン試験システムを開発する方法 はじめに: インターネットの急速な発展に伴い、オンライン試験システムは学校、企業、機関、研修機関でますます好まれています。オンライン試験システムは、受験者の利便性を高めるだけでなく、試験効率の向上や試験中の紙資料の消費量の削減にもつながります。この記事では、Laravelフレームワークを使用して、シンプルで実用的なオンライン試験システムを開発する方法を紹介します。 1. プロジェクト準備環境要件: PHP>=7.2、Composer、MySQL

PHPを使用してオンライン家庭教師サービスプラットフォームを開発する方法 PHPを使用してオンライン家庭教師サービスプラットフォームを開発する方法 Oct 28, 2023 am 09:01 AM

PHP を使用してオンライン個別指導サービス プラットフォームを開発する方法 インターネットの急速な発展に伴い、オンライン個別指導サービス プラットフォームはますます多くの人々の注目と需要を集めています。このようなプラットフォームを通じて、保護者や生徒は適切な講師を簡単に見つけることができ、講師も自分の指導能力や利点をより適切に発揮することができます。この記事では、PHPを使用してオンライン家庭教師サービスプラットフォームを開発する方法を紹介します。まず、プラットフォームの機能要件を明確にする必要があります。オンライン家庭教師サービスプラットフォームには、以下の基本機能が必要です。 登録およびログインシステム:ユーザーは次のことができます。

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか? Nov 02, 2023 pm 01:35 PM

PHP 開発でバージョン管理とコードコラボレーションを実装するにはどうすればよいですか?インターネットとソフトウェア産業の急速な発展に伴い、ソフトウェア開発におけるバージョン管理とコードのコラボレーションがますます重要になってきています。独立した開発者であっても、チーム開発者であっても、コードの変更を管理し、共同作業を行うためには効果的なバージョン管理システムが必要です。 PHP 開発では、Git や SVN など、一般的に使用されるバージョン管理システムがいくつかあります。この記事では、PHP 開発におけるバージョン管理とコード共同作業にこれらのツールを使用する方法を紹介します。最初のステップは自分に合ったものを選ぶことです

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

PHPキャッシュ開発で検索エンジンのランキングを向上させる方法 PHPキャッシュ開発で検索エンジンのランキングを向上させる方法 Nov 07, 2023 pm 12:56 PM

PHP キャッシュ開発を通じて検索エンジンのランキングを向上させる方法 はじめに: 今日のデジタル時代では、Web サイトの検索エンジンのランキングは、Web サイトのトラフィックと露出にとって非常に重要です。 Web サイトのランキングを向上させるためには、キャッシュによって Web サイトの読み込み時間を短縮することが重要な戦略となります。この記事では、PHP でキャッシュを開発して検索エンジンのランキングを向上させる方法を検討し、具体的なコード例を示します。 1. キャッシュの概念 キャッシュは、データを一時ストレージに保存して、すぐに取得して再利用できるようにするテクノロジーです。ネット用