ホームページ  >  記事  >  バックエンド開発  >  phpの基本的なまとめ

phpの基本的なまとめ

WBOY
WBOYオリジナル
2016-06-20 12:53:281828ブラウズ

PHP 開発環境を構築する

1. BS/CS アーキテクチャを理解します。

答え: B/s: ブラウザー/サーバー: サーバーおよびブラウザー アーキテクチャ ソフトウェア, 特徴:ブラウザに依存し、クライアントをインストールする必要がなく、Webページを開いて使用できます。例: Jingdong、Taobao、Baidu

C/s: クライアント/サーバー: クライアントおよびサーバー アーキテクチャを備えたソフトウェア、機能: クライアントを使用するためにインストールする必要があるソフトウェア。例: QQ、Kugou

2. リクエストからレスポンスまでの Web サイトの対話プロセスを理解します

答え: クライアント -->ブラウザ-->サーバー-->php-->Mysql ステップごとに戻ります

注: ユーザーがブラウザのアドレス バーにドメイン名または IP を入力すると、ブラウザはrequest 指定されたサーバーを検索します。サーバーは、要求された言語に従って、対応するサーバー側スクリプト言語を呼び出し、クエリ結果をサーバーに返します。ページに挿入されるブラウザで、応答プロセス全体を完了する場所を指定します。

3. http プロトコルを理解する

答え: ハイパーテキスト転送プロトコルは、ステートレスという特徴を持ち、World Wide Web によって公開されているルールです。インターネットにアクセスする場合: http://ドメイン名。

4. WAMP の構築方法をマスターする (Apache MySQL PHP を別途インストールする) (WAMP 環境を構築する手順)

答え:

①ドライブ文字の下に web という名前の新しいフォルダーを作成し、その中に Apahce、mysql、および php の 3 つの新しいフォルダーを作成します。

② まず Apache をインストールします。インストールが完了したら、ブラウザのアドレスバーに localhost または 127.0.0.1 を入力するとページが表示されます。インストールが成功したことを示します。

③ PHP をインストールし、Apache に php をロードさせ、インストール完了後にサーバーを再起動します。

④ MySQL をインストールします。インストールが完了したら、コマンド net start mysql を使用してサービスを開始します。

⑤ php を設定し、php のエラー プロンプトを開き、デフォルトのタイム ゾーンを設定し、開きます。対応する拡張子を指定し、設定が完了したらサービスを再起動し、hello world! を出力するプログラムを作成します。インストール全体が完了しました。

5. Apache と PHP の関係、および PHP を解析するための設定方法を理解します。

答え: Apache はクライアントとサーバー側の間のサーバーです。言語 サービスの場合、php は html にネストされたサーバー側の解釈型スクリプト言語です。ブラウザで正常に実行したい場合は、php がなくても Apahce は正常に実行できます。ブラウザでは実行できませんが、PHP には独自のコマンドラインがあり、実行できます。

Apache のメイン設定ファイル httpd.conf に追加します:

PHPIniDir "E:/web/PHP/php.ini"

LoadModule php5_module "E:/web /PHP /php5apache2_2.dll"

これは、Apache が php をロードする方法です

6. サーバーが使用する php.ini の場所を見つける方法をマスターします。

答え: プログラム出力を作成します。phpinfo() 関数は、PHP に関するすべての情報をブラウザーに出力します。オプションの 1 つは、Apache によってロードされた PHP 構成ファイルの名前です。

7. php の拡​​張機能ディレクトリを見つけて、特定の PHP 拡張機能を有効にする方法を学びます。

答え: php.ini に次のオプションがあります。これを変更します。オプションの前のセミコロンを削除し、最後に php 拡張機能ディレクトリの特定のパスを記述します。例: extension_dir = "E:/web/php/ext" これはサーバーを再起動した後にのみ有効になります

8. PHP ファイルのタグを理解し、hellord 出力を作成できるようにします。

答え: 短いタグ: php.ini を変更します: short_open_tag、先頭のセミコロンを削除し、パラメータを on のように記述します。 short_open_tag = On サーバーを再起動した後にのみ有効になります

9。 > ポートの概念を理解し、(Apache、MySQL) サーバーについて理解します。 デフォルトのポート;

答え: ポートはソフトウェアのマークであり、番地に相当します。 Apache のポート番号は listen 80、mysql のポート番号はポート 3306 です。PHP には独自のポート番号がなく、デフォルトでサーバーと一致しています。変更後は、再起動する必要があります。サーバーに接続し、今後アクセスするときにポート番号を追加します。例: http://www.baidu.com:8080

10. Web サイトを理解し、動的 ​​Web サイトと静的 Web サイトの区別を習得します。ウェブサイト

回答: ウェブサイトは、js、サーバーサイド言語、データベースを使用した動的開発のための html および css BS アーキテクチャ ソフトウェアで構成されています。

静的 Web サイト: 閲覧のみが可能で、追加、削除、変更、確認ができない Web サイト。

動的 Web サイト: データベースと対話する Web サイトはすべて動的 Web サイトです。 >

11.

マスターサーバールート、サーバー名、DocumentRoot 答え: サーバールート: サーバーが配置されているディレクトリ

サーバー名: Web サイトのドメイン名

DocumentRoot: Web サイトが保存されているルート ディレクトリ。インストールが完了した直後のデフォルトのパスは、ドライブ文字:/web/Apache/htdocs です。 もちろん、この場所は変更できます

12. クライアント、サーバー、ブラウザ、およびサーバーを理解します

答え: クライアント: ユーザーがインターネットにアクセスする端末です。つまり、インターネットをサーフィンする人がクライアントです

サーバー側: サーバーが配置されている端末です

ブラウザ: ユーザーがインターネットにアクセスするために使用するツールです

サーバー: ユーザーがアクセスするためのサービスを提供しますターミナル

PHP の基本構文

1. PHP の詳細を理解する

答え: 詳細はオンラインで調べてください。

Php の特徴: オープンソース、無料、クロスプラットフォーム、強力、高い実行効率。

Php 環境は、WAMP と LAMP に分かれています。

WAMP: windows+Apache+Mysql+php

LAMP: linux+Apache+Mysql+php

注: PHP はサーバーとして Apahce だけでなく、nginx などの多くのサーバーもサポートしています。最近では、すべてのデータベースが PHP に接続できるようになりました。例: SQLserver、oracl など。

2. PHP と他の言語 (Java) の類似点と相違点 (クロスプラットフォーム、実行効率、開発効率、安定性、オープンソース) を理解する、asp、.net プラットフォーム)、モバイル インターネット)

答え: java: uninx+tomcate+oracl+javaee

.net: windows+IIS+SQLserver+ASP

PHP:

WAMP: windows+Apache+Mysql+php

LAMP: linux+Apache+Mysql+php

Php は、主に Web 開発に非常に強力で、開発効率、優れたユーザー エクスペリエンス、サーバー 優れた最適化パフォーマンスにより、今日の Web サイト開発に好まれる言語です。

3. コードを書くときのコメントの正しい使い方をマスターしましょう

答え: php の単一行のコメント // # 複数行コメント: /* * /

注: コメントを書くことは、プログラマが持つべき基本的な資質です。コメントを書くことでコードが一目瞭然になり、各 PHP ファイルの機能がより明確に表示されます。コメントの書き方を学ぶことは、あなたのスキルを向上させるのに役立ちます。

4. マスター isset()、unset()、empty()

答え: ここで関数を見つけました。関数の 3 つの要素についてはマニュアルを確認してください。

① まずは関数の働きを理解する

② 関数の引数の数を理解する

③ 関数の戻り値を理解する

Isset( ): 変数が設定されているかどうかを検出します。戻り値が設定されている場合は true を返し、そうでない場合は false を返します。

Unset(): 指定された変数を破棄します。変数名であるパラメーターは 1 つだけあり、戻り値はありません。

Empty(): 変数が空であるかどうかを判断し、空の場合は true を返し、それ以外の場合は false を返します。空でないかどうかを判断するには、次を使用します。空(変数名)

5. マスター変数変数と変数参照(値転送とアドレス転送)

答え: 値転送とは、変数の値を転送することです。別の変数に割り当てられる場合、どちらかの変更はもう一方には影響しません。このとき、2 つの変数は直接割り当ての上に & を追加し、どちらかの変更はもう一方に影響を与えます。 。

例: $b=20; $a=$c=$b; $c=30; 結果は次のようになります: 20

例: $a=10 ; $b =&$a; $c=&$b; $a++; 結果は次のようになります: 11

変数の宣言と名前付けをマスターします。 > 答え : ① $ 変更で始める必要があります

② 変数名は厳密に大文字と小文字が区別されます

③ 変数は中国語でも使用できますが、通常は使用されません

④文字と数字で構成される特殊文字を含めることはできません アンダースコアで構成され、数字で始めることはできません

ステートメント: $b=”erwerwer”

7

8 種類の変数をマスターしましょう

答え: 4 つのスカラー データ型: 整数、実数、文字、ブール

2 つの特殊なデータ型: リソース、空の型

2 つの複合データ型: array 、Object

8.

マスター var_dump()、echo、print_r():

答え: echo: 1 つ以上の文字列を出力

Print_r(): 変数に関するわかりやすい情報を出力します。

Var_dump(): 変数の詳細情報を出力

9.

さまざまな変数型間の変換をマスター

答え: 強制変換と自動変換

例: 強制変換: $a=10; echo (float)$a

例: 自動変換: $a=10; var_dump($a)今回は $a が浮動小数点型です

10.

定数の定義と使い方をマスターしましょう

答え:define("定数名","定数値") ) 例:define("B",10); echo B; 結果は次のようになります: 10

注: 定数は一度定義されると変更できません

例: "A",10); @define("A",20); 結果は次のようになります: 10

11.

定数と変数の違いをマスターします。 🎜>答え: 定数は、プログラムの実行中に使用され、その値は変更できません。

変数は、プログラムの実行中に値が変更される可能性のある量です。変数のデータ型は、値 に基づいて決定されます。

12. さまざまな演算子と式 (算術演算子、インクリメントおよびデクリメント演算子、比較演算子、文字列連結演算子、論理演算子、エラー制御演算子と式) の使用をマスターします

答え: 算術演算子: + - * / % += *= -=

論理演算子: ! && ||

比較演算子: > < No.: 両辺の値と両辺のデータ型を決定します

インクリメント演算子とデクリメント演算子: ++ --

文字列連結演算子: .

エラー制御演算子: @

式: ? :

PHP 言語構造

1. PHP の言語構造とは何ですか

答え: シーケンシャル構造、選択構造、ループ構造

2. 基本的な構文をマスターします。 of if...else if...else...if;

答え: if (条件) {判定結果} if (判定条件) {肯定的な結果}... elseif {否定的な結果}else {どちらの条件も true ではない}

2.

switch...case 構文をマスターする

答え: case の後にブレークが必要ですそうでない場合は、ブレークが発生するか最後まで実行が継続されます

3.

for ループをマスターします

答え: for (initial値; 最終値; ステップ サイズ){ループ本体}

4.

特殊な制御ステートメントをマスターします (break continue)

答え: Break は現在のループを終了します。 、続行とは、このループを終了して次のループに進むことです

例: $a =0;

for($i=1;$i<5;$i++){

If($i==2){

続行;

}

For($j=1;$j<=3;$j++ ){

If($j==2){

Break ;

}

$a++;

}

} echo $a; 結果は次のようになります。 3

5,

while/do...while の基本構文をマスターします。

答え: while do...while はループ条件を先に判定してからループ本体を実行します。 do...while はループ本体を先に実行してからループ条件を判定します。 When ループ条件が成立していない場合、do...while ループを実行します。 while よりも 1 回

例: $a=3;

Do{

$a++;

}while($a<2) ;

while{$a<3}{

$a++;

}

Echo $a; 結果は次のようになります: 4

6.

関数の定義と呼び出しを柔軟に使用する

答え: 関数を定義します: function 関数名 (仮引数) {関数本体 return 戻り値} 関数を呼び出します: fun (実際のパラメータ)

注: 関数本体で return が発生すると、そこにある値が返され、次のコードは実行されなくなります

例: function fun() {

グローバル $a;

$a=1;

$a++;

Return $a;

++$ a;

}

fun();

echo $a; 結果は次のようになります: 2

7

変数のスコープを柔軟に使用する

答え: ローカル変数 (関数本体内で定義された変数です。スコープは関数本体全体内です。関数内でグローバル変数を使用したい場合は、グローバルステートメントを追加する必要があります) グローバル変数 (関数の外で定義された変数、スコープは PHP スクリプト全体です) 静的変数 (静的に定義された変数、保存されるデータは静的、つまり変更されません)

8.

パラメータの受け渡し (値とアドレスによる受け渡し) をマスターする

答え: 値の受け渡しは、仮パラメータが の値を受け取る方法で受け渡されます。実パラメータの宣言がない場合 この場合、仮パラメータの変更は関数外の実パラメータの値には影響しません。値の転送に基づいて&を追加します。このとき、仮パラメータは同じメモリ空間を指しており、仮パラメータの変更は、グローバルの有無に関わらず、関数外の実パラメータの値に直接影響します。

例: function fun($a,&$b){

Global $a;

$a+=$b;

$b+ = $a;

}

Fun(4,5);

Echo $a.'#'.$b; 結果は次のようになります: 9#14

9.

再帰関数の簡単な使用法

答え: 再帰は関数自体を呼び出す際の精度は高くなりますが、リソースを消費します

例: n を求めてください!

関数 fun($n){

If($n==1){

Return 1;

}Else{

Return Fun($n-1)*$n

}

}

Echo fun(5); 結果は次のようになります: 120

10.

include require include_once require_once の違いを理解する

答え: プログラムで致命的なエラーが発生すると、include は警告を生成し、プログラムは実行を継続します。 include_once() と require_once() はどちらもファイルを 1 回だけインクルードすることを意味し、同じファイルを複数回インクルードすることによって発生するエラーを回避するために、 include_once() と require_once() を使用してそれらを置き換えます

文字列 <<>

1, 文字列の定義

答え: 一重引用符、二重引用符、固定境界

例: $ a ='aaaaa'; echo $a; 結果は次のようになります: aaaaa;

$a=”sdsadfsfd”; 結果は次のようになります: sdsadfsfd

$b= 10;

$a="$b 20"; echo $a; 結果は次のようになります: 10 20

$a=10;

区切り文字の形式: < <<独自に定義した形式の大文字文字列は独自に定義した形式のヘッダーで終わります

$str=<<

QWERQWRQWRQ $a WRQWRQWERQWRQWRQWASJFDASJKFGSDOF

HELLO;

echo $str;

2.

一重引用符と二重引用符の違い 回答: $ で始まる変数名は二重引用符で解析され、一重引用符は解析されません。

文字列を出力するための print printf と sprintf の使い方をマスターします。 🎜> 答え: print() 出力文字列は実際には関数ではない (言語構造体である) ため、その引数リストを括弧で囲む必要はありません。

Printf(): 出力フォーマットされた文字列 例: $a=printf("%d",17); echo $a 結果は次のようになります: 172

Sprintf(): and Printf( ) 一貫した

5.

マスター文字列処理関数 (strlen、substr、strpos、trim、ltrim、rtrim)

$a=' qweqweqweqwe '

Strlen(string): 文字列の長さを求める

Substr(string, インターセプトの開始位置, インターセプトの長さ [省略可、省略した場合は先頭から位置 最後までインターセプト]): 文字列をインターセプトし、インターセプトした文字列を返します

例: URL: http://www.php.com/index/ext/index.php.html があります。答え いくつかの質問:

(1) .php を入手したい場合はどうすればよいですか?問題解決のアイデアと疑似コードを書き留めてください。

$str=”http://www.php.com/index/ext/index.php.html”;

アイデア:

① まずこの URL を変更しますそれを文字列にして変数に代入します。

② x が最後に出現した位置を見つけます。strrpos を使用して検索します。

③ 検索後の戻り値を の 2 番目のパラメータとして使用します。インターセプト、これもインターセプトの開始位置です

④ インターセプト、substr でインターセプトを開始します、インターセプトの長さは 4 です

⑤ 出力を返します

コード:

$index= Substr($str,strrpos($str,”x”)+1,4);

Echo $index;

(2) 次の場合はどうすればよいですか? .htmlを入手しますか?実装のアイデアと疑似コードを書き留めます。

アイデア:

アイデア:

① まず、この URL を文字列に変換し、変数に割り当てます

② 最後に出現した位置を見つけます、strrpos を使用して検索します。

③ 検索後の戻り値をインターセプトの 2 番目のパラメーターとして使用します。これはインターセプトの開始位置です。

④ インターセプト、substr を使用してインターセプトを開始します、いいえ3 番目のパラメータを記述する必要があります。最後まで直接インターセプトします。

⑤ 出力を返します。

コード:

$index=Substr($str,strrpos($str,”. ”));

Echo $index; ):

① 文字列内の改行を

に置き換えます。 答え: str_replace (置き換える対象、置き換える対象、および置き換える対象は文字列名です):

例: $a="hello world!";出力結果は: heQQo worQd!

② すべての文字を大文字(小文字)に変換します

答え: strto lower(): 文字列全体を小文字に変換します

例: $str="HELLO world!" echo strto lower($str); 出力結果は次のようになります。

Strtoupper(): 文字列全体を大文字に変換します。

例: $str="HELLO world!" echo strtoupper($str); 出力結果は次のようになります。

③ 文字列の両端(左側と右側)の空白文字を削除します。

答え:trim(): 文字列の両端の空白文字を削除します。 string

例: $a=" aaa ”; echo trim($a); 結果は次のようになります: aaa スペースなし

Ltrim(): の左側のスペースを削除します。 string

Rtrim() :文字列の右側のスペースを削除します。

④ 文字列内の各単語の最初の文字を大文字にします。文字列

Ucfirst(): 文字列の最初の文字を大文字にする

Ucwords(): 文字列内の各単語の最初の文字を大文字にする

数値グループ

1.

配列の分類をマスターします

答え: 種類別: 連想配列とインデックス配列 次元別: 1 次元配列、2次元配列、多次元配列

配列を定義します: 変数名 = 配列 (要素, 要素, 要素) または $a[]=1; 添字宣言は 0 から開始することもできます。 [] が付いた変数はすべて配列

例: $arr=array(1,2,3,4,5); インデックス配列と連想配列、キーの名前と値を理解します。 🎜>
答え: インデックス配列: 配列内の要素の次のテーブルはすべて数値の配列であり、インデックス配列の次のテーブルはデフォルトで 0 から始まります

例: $a= array("a","b"); または $a=array(2,4,5,6);

または $a= array(1=>2, 2=>3)

または $a=array(1=>"wqeqwe",4=>"weqweqwe")

連想配列:次の配列要素のテーブルには文字列の配列があります

例: $a=array("a"=>1111,"b"=>222);

または $a =array("a"=>"hello","b"=>"world!")

または $a=array(1,2,3, "name"=>"zhangsan" ")

キー、インデックス、添字はすべて要素の位置を参照します

要素は配列内の値を参照します

3.

次のような状況での配列の追加、削除、および変更をマスターしてください:

注: 配列の追加、削除、および変更を伴う操作は、配列の添え字のみを変更することによって行う必要があります。この値は変更されます。それ以外の場合は無効になります。

増加: 配列要素が追加されるとき、配列の添字が存在する場合、値は上書きされます 例: $arr=array(1,2,3,4,5 , 6)

$arr[] = 'a'; //このコードは $arr

$arr['y'][] = 10 の 1 を上書きします ;

$arr['y']['3'] = 20;

削除: unset(配列名 [添え字])

1 次元配列からの要素 (unset($arr[3]))

多次元配列からの要素の削除 (unset($arr['3']['7']))

変更: 変更された添字が存在しない場合は追加されることに注意してください

1 次元または多次元配列の値を変更する方法 $arr[ ' y']['3'] = 20;

4.

1 次元のインデックス配列と 1 次元の連想配列の走査をマスターします。 、ループ出力)

答え: 1 次元インデックス配列:

$arr=array(1,2,4,5,6,7,8,9); //$i ループ内で要素を使用したい場合は、$i を記述するだけでは意味がありません。

//count は、統計配列の長さ ループの終了条件として

For($i=0;$i

Echo $arr[$i ]; //1 を変更します。次元インデックス配列のすべての要素がブラウザ上に出力されます。

}

1 次元連想配列:

$arr=array( “name”=>”zhangsan” ,"sex"=>"male");

//連想配列の走査には foreach を使用する必要があり、インデックス配列にも foreach を使用できます

/ /Foreach 形式:

//foreach (キー変数名としての配列名 => 値変数名) { ループ本体 } これはループ構造

Foreach($arr as $k) にも属します=>$v){

Echo $k.“->gt;”.$v; //これは値の要素を出力します: key->value

}

5.

2 次元のインデックス配列と 2 次元の連想配列の走査 (つまり、ループ出力) をマスターする

答え: 2 つ次元インデックス配列: (つまり、2 層配列のインデックス配列)

$arr=array(array(1,2,4,5,6,7,8,9)); //$i は最初の 1 次元配列の添字を表し、$j は配列内の特定の要素を使用する場合は、$arr[$i][ を使用します。 $j] と書くだけでは意味がありません

//count はループの終了条件となる統計配列の長さです

For($i=0;$i

For ($j=0;$j

Echo $arr[$ i][$j]; //二次元のインデックス配列を入れる

}

}

二次元連想配列:

$arr=array(array("名前"= >"張三","性別"=>"男性"),array("名前"=>"リシ","性別"=>"男性"));

Foreach($arr as $k=>$v){

Foreach($v as $key= >$val){

Echo $key.“-> ;".$val; //これは値の要素を出力します。形式は次のとおりです: key->value

}

}

6.

2 次元の連想配列またはインデックス配列をテーブルに配置する方法をマスターします

$arr=array(

array("年齢"=>"17","性別"=>"女性"), array("年齢"=>"17","性別"= >"男性"),

array("年齢"=>" 20","性別"=>"女"),

);

echo "

";

foreach($arr as $val){

echo "

";

foreach($val as $v){

echo "

";

}

echo "

";

}

echo "

";

echo $v;

echo "

";

7. 配列 (in_array、array_search、array_key_exists) から特定の値 (キー) が存在するかどうかを問い合わせます

in_array(): 配列内に要素が存在するかどうかを検索します

Array_seatch(): 配列内で指定された値を検索します。存在する場合は、キー名が返されます

array_key_exists (): 配列内のキーまたはインデックスが配列内に存在するかどうかを判断します

8. 配列と文字列関連の関数のexplodeとimplodeをマスターします

Explode(): タグに従って文字列を配列に分割します

例: 861745122@qq.com は 0=>861745122 1=>qq.com

Print_r になります(Explode ("@",$str));

Implode(): 配列を文字列に連結します

9 , 以下の関数をマスターし、次の関数の意味を理解してください。要件がわかっていれば、マニュアルで関連する関数を見つけることができます (

array_values(): すべての値を返します。配列内のすべてのキーを返してインデックス配列を形成します

array_keys(): 配列内のすべてのキーを返してインデックス配列を形成します

array_flip(): のキー値を交換しますキー名が存在する場合は値が置換されます。存在しない場合は値が置換されます。

array_reverse(): 配列

Count を反転します。 (): 配列の長さを計算します

array_count_values(): 配列内に同じ要素が出現する回数をカウントします。形式は次のとおりです: value --> 回

array_unique() : 配列内の重複を削除し、削除後の新しい配列を返します

Sort(): 配列を下位から上位に並べ替えます (順方向)

Rsort(): 配列を上位から下位に並べ替えます(逆方向)

Ksort(): 配列のキー名でソート (順方向)

Krsort(): 配列のキー名でソート (逆方向)

Asort(): 配列をソートし、インデックス関係を維持します

Arsort(): 配列を反転します ソートし、インデックス関係を維持します

array_merge(): 1 つ以上の配列をマージします

array_rand(): 配列から 1 つ以上のキーをランダムに生成して新しい配列を形成し、返します

array_sum(): 配列内のすべての要素の合計を計算します

Apache サーバー構成

1. httpd.conf と httpd-vhosts.conf について

答え: httpd.conf: Apache のメイン設定ファイルは httpd-vhosts.conf です。 Aapche にこのファイルをロードさせたい場合は、Apache のメイン設定ファイルの #Include conf/ を削除した後、extra/httpd-vhosts.conf の前にある「#」を削除する必要があります。 Aapche はこのファイルをロードします。

2、 の構成を変更することで、ディレクトリ リスト (オプション インデックス FollowSymLinks) を無効または表示できます。 apache

回答: オプション インデックス FollowSymLinks の構成が完了すると、仮想ホストはアクセス時にディレクトリ内のすべてのファイルのリストを表示できます

3 Order、Allow、Deny、DocumentRoot、ServerName の機能

答え:AllowOverride None: ドメイン名の書き換えを許可するかどうか、Web サイトの .htacess ファイルでは許可されません。有効になります

順序: アクセス許可、許可、拒否、禁止のいずれかが最初に有効になります

すべてから許可: すべてからのアクセスを許可

DocumentRoot: Web サイト公開ルート ディレクトリ

ServerName: ドメイン名を設定します

4. 仮想ホストを個別に完了する構成プロセスをマスターし、各ステップを深く理解します。 1 つのステップの役割

答え: ① C:WindowsSystem32driversetchosts ファイルを見つけて開き、次の形式に変更します:

127.0.0.1 (ip) www.a.com (ドメイン) name)

② Apache のメイン設定ファイルを見つけて、次を見つけます。

#Include conf/extra/httpd-vhosts.conf 先頭の「#」を削除します。 Aapche は仮想ホストを構成するファイルをロードします。 conf/extra/httpd-vhosts.conf

③ で仮想ホストを構成できます: conf/extra/httpd-vhosts.conf

ファイルをクリアして次のように書き込みます。

NameVirtualHost *:80 //どの仮想ホストを構成しても、アクセスされるポートは 80

ServerNamelocalhost //アクセスされた Web サイトのドメイン名

documentRoot E:webApachehtdocs //Web サイトが保存されているルート ディレクトリ

Web サイトの保存履歴 ディレクトリは documentRoot と一致します

オプション インデックス FollowSymLinks //仮想ホストで機能を設定し、アクセス時にディレクトリ内のすべてのファイルのリストを表示します

AllowOverride None //ドメイン名の書き換えを許可または禁止します None 許可されません

順序許可、拒否 //アクセス 許可は一部のアクセスを許可します 拒否はアクセスを禁止します、許可が最初に有効になり、拒否が有効になります

すべてからのすべてのアクセスを許可します

フォーム処理

1. フォームの書き方 (フォームアクションメソッド) と一般的なフォーム要素 (テキスト、パスワード、非表示、ラジオ、チェックボックス、ファイルの選択) をマスターします。 、submit、button、texteara、reset)

フォームタグ:

アクション: フォームの送信アドレスを表します Q: 送信ボタンがクリックされたとき、ページがジャンプします どこですか? Actionで指定したファイルの

メソッド: getとpostに分かれています。デフォルトはgetとpostの違いです。 🎜>

値はアドレス バーの長さによって制限されるため、渡された値を受け取るにはサーバー上で $_GET を使用します。

ポスト値の送信は非平文送信であり、送信されるデータ量は比較的安全です。渡された値を受け取るにはサーバー側で $_POST を使用します。

テキスト ボックス: < ;input type="text">

ラジオ ボタン:

ラジオ ボタンを実装するにはどうすればよいですか?

答え: この入力の name 属性に同じ名前を付けます。例:

male

女性

チェックボックス:

チェックボックスを実装するにはどうすればよいですか?

答え: チェック ボックスの名前を配列形式に設定します。例:

または、それぞれを入力します。 complex 選択ボックスの名前が別の方法で設定されています

パスワード ボックス:

隠しフィールド: 非表示フィールドの値はページには表示されませんが、フォームの送信時にバックグラウンドに送信されます

ドロップダウン リスト:

リセットボタン:

送信ボタン:

ファイルアップロードフィールド:

テキストエリア:

質問:

1) フォームの各要素に name 属性を与える必要があるのはなぜですか? id を使用しても問題ありませんか?それとも名前の代わりにクラスですか?なぜ?

回答: フロントエンド フォームによって送信された値をサーバー側で受け取りたい場合は、form 要素に name 属性を宣言する必要があります。そうしないと、フォームの値がサーバー側で取得されません。 。他の属性を使用して名前を置き換えることはできません。サーバーは名前属性のみを認識します。

2) 送信ボタンをクリックしてもページが変化しません。理由を説明してください。

答え: フォームの action 属性が設定されていないか、送信ボタンの type 属性の値が submit ではありません

3) 送信ボタンをクリックすると、ページに次のメッセージが表示されます。 404エラーの原因は何でしょうか?

答え: アクションで指定されたファイルは存在しません。404 はファイルが見つからないというエラー ステータス コードです

2.

サーバーが $_POST を使用する方法をマスターします。 、$_GET および $ _REQUEST は、クライアントによって送信されたデータを受け取ります

答え: サーバー側で $_POST または $_GET を使用して、フォーム送信メソッドと一致するクライアント データを受け入れます。フォームが post に設定されている場合、サーバー側で $_POST または $_REQUEST を使用して、フォームによって送信された値を受け取る必要があります。

フォームのメソッド属性が get に設定されている場合は、次を使用する必要があります。フォーム送信を受信するサーバー側の $_GET または $_REQUEST の値は、name 属性に対応する値です

3。

ダイナミック スプライシング オプションをマスターします

答え: 最初に配列を定義します。例: $arr=array(1,2,3,4,5,6,7);

ファイル操作

1. 理解 (file_exists、copy、unlink、filesize、filemtime)

答え: file_exists(): 指定されたファイルが存在するかどうかを判断します

Copy( ) : あるファイルを別のファイルにコピー

Unlink(): サーバー側のファイルを削除

Filesize(): ファイルのサイズを取得

Filetime():ファイルが最後に変更された時刻を取得します

2. ファイルを操作する一連の関数 fopen、fgets、fread、fwrite、fclose を理解します

答え: fopen(): ファイルを開き、すでに開かれているファイルリソースを返します

Fgets(): ファイルコンテンツの行を取得し、ファイルを読み取ります

Fread(): 読み取りパラメータに基づいて決定されるファイル 数行を読み取ります

Fwrite(): ファイルに文字列を書き込みます

Fclose(): ファイルを閉じ、fopen 後にファイル リソース ストリームを解放します

3. file_get_contents によるファイルの読み取りをマスターする

答え: file_get_contents(): ファイルの内容を文字列に読み取るか、URL コンテンツを取得します。

4. file_put_contents を使用してファイルにデータを書き込むマスター

答え: file_put_contents(): 文字列全体をファイルに書き込みます

5. マスター相対パスと対応するパス

答え: 相対パスは、上位ディレクトリに対する相対パスです。例: ../a.php

絶対パスはファイルの場所を直接書き込むことです: 例: C:/web/Apche/a/a.php

MySQL の紹介とインストール

1. MySQL の歴史を理解する

2. MySQL のインストール手順をマスターする

3. navicat ツール

4. MySQL の一般的なデータ型 (整数、浮動小数点、日付型、文字列型) をマスターする

答え: int float date text char と varchar 10 進数

Char と varchar の違い:

MySQL データの基本操作

1. データベースの作成: データベースを作成します。データベース名

2.

すべてのデータベースを表示: データベースを表示

3.

データベースを開く: データベース名を使用します

4.

データベースの削除: データベース データベース名

5.

テーブルの作成: テーブル テーブル名 (列名のデータ型制約、列名のデータ型制約。 。 。 。 。 。 )

6.

現在のデータベース内のすべてのテーブルを表示します: show tables

7.

現在のテーブル構造を表示します: desc テーブル名

8.

テーブルの削除: テーブル テーブル名を削除

9.

データの挿入: テーブル名に挿入 ([自動インクリメント列の値挿入] 列名。 . .) 値 (値 1、値 2 [データ型は char、varchar、テキストは一重引用符で囲む必要があります]) 10、

データの表示: テーブル名 where 条件から * または特定のフィールド名を選択します。 11. データの変更: テーブル名を更新してフィールド名 = 新しい値を設定します where 条件 where 条件が追加されていない場合、テーブル全体のデータが更新されます

12.

データの削除: テーブル名 where から削除 where 条件を追加しない場合、テーブル全体のデータが削除されます。つまり、テーブルをクリアします。 >

MySQL その他のクエリ

1.

where 句

Select * from stu where id=1 or id=2 or id=5

Select * from stu where id in (1,2,5)

2,

order by

order by sort 列 desc (降順) asc (デフォルトの昇順)

3.

limit レコード数を制限します

limit 結果セットを制限します (パラメータが書き込まれる場合、どのレコードから開始されますが、そのパラメータは含まれません。いくつかのレコードを取得します。パラメータが 2 つある場合、最初のパラメータはまだどのパラメータから始まり (そのパラメータを除く)、2 番目のパラメータは取得するパラメータの数です)

4.

distinct は重複を削除します

条件

から個別の (列名) を選択します

別名とテーブル別名をリストします

6. 内で内部結合を結合 ... オン

左外部結合 左結合 ... オン

右外部結合 右結合 ... オン

7,

あいまいクエリ構文

あいまい一致のような % は任意の数の文字を表す _ 任意の文字を表す

8,

Master between…そして…

…と…の間: で。 。 。 。 between

例: 18 と 25 の間の学生情報をクエリする 年齢が 18 より大きく 25 未満

年齢が 18 と 25 の間の stu から * を選択

ストレージエンジン間の違い(myisam innodbメモリ);

13.1 PHP による MySQL への接続;

13.2 PHP による MySQL の追加、削除、変更、クエリ;

1.マニュアルを参照せずに mysql_** *一連の関数は MySQL で CRUD 操作を実行します (mysql_connect、mysql_select_db、mysql_query、mysql_fetch_array、mysql_fetch_assoc、mysql_fetch_row、mysql_insert_id)

質問: PHP で mysql 拡張機能を有効にする必要がありますか? mysqlシリーズの関数を使用するときは?

を使用する必要があります。使用しないと、未定義と表示されます。 。 。警告


Q: mysql_connect() はリモート データベースに接続できますか?

最初のパラメータが正しく書き込まれ、パスワードとユーザー名が正しく一致する限り、強力な機能であるため接続できる必要があります

mysql_connect():データベース接続、3 つのパラメータ。最初のパラメータはデータベースのアドレス、2 番目のパラメータは管理者名、3 番目のパラメータはパスワードです。データベース接続識別子を返します。

mysql_select_db(): データベースを選択します。最初のパラメータはデータベース名で、2 番目のパラメータは、実行が成功した場合は TRUE を返し、エラーが発生した場合は FALSE を返します。

mysql_fetch_array(): 結果セットから行を連想配列、数値配列、またはその両方としてフェッチします。

例: mysql_fetch_array($res,MYSQL_NUM) これがインデックスになります。 array

mysql_fetch_array($res,MYSQL_ASSOC) これは連想配列になります

mysql_fetch_assoc: 結果セットから連想配列として行を取得します

mysql_fetch_row: 行を取得します結果セットからインデックス配列として取得します

mysql_insert_id: 挿入されたばかりで自動的に増加する ID を取得します。パラメーターを記述する必要はありません。

CMS プロジェクトの開発と概要

1. 管理者ログイン機能の開発アイデアと疑似コード:

① まず、ユーザー名、パスワード、ログイン ボタンを含むログイン フォームを作成します

② 実行するサーバーにアクションアドレスを設定します サーバー側で検証したファイルのメソッド属性はpost

③ サーバー側で検証したこのファイルで、接続などの操作を行いますデータベース

④ 標準化された SQL クエリ ステートメントを作成します: select *from table name where name =$_POST['name']

⑤ エントリ ステートメントが正常に実行された場合は、ユーザーが名前が存在し、パスワードが判定され、失敗した場合はユーザーが存在しないことを意味し、登録ページにジャンプします


⑥ * を選択してすべてのフィールドをクエリするだけです。送信されたパスワードと照会されたパスワードが一致した場合、ログインは成功します。それ以外の場合、ログインは失敗します。ログイン ページにジャンプしてパスワードを再入力するよう求められます。

2. メインの背景フレームを構築し、関数メニュー (フレームセット) を追加します。

答え: >

<フレーム名="top" src="top.php">

<フレームセットcols="150,*">

<フレーム名= " lower_left " src="left.php">

<フレーム名=" lower_right" src="right.php">

🎜>

3. ニュースを追加するためのアイデア:

① ニュースのタイトル、内容、カテゴリ、およびニュースを追加するためのフォーム ページを作成します。担当者を追加しました

② 分類は静的であってはなりません。データベースから読み取られるドロップダウン リストである必要があります。

③ 送信するには、フォームの送信ボタン属性を設定する必要があります。投稿するメソッドとアクション 挿入するサーバー側のファイル名

④ 追加した機能を実装したファイルにページがジャンプし、一連の検証を行い、検証後データベースに接続します完了し、SQL ステートメントを結合します: テーブル名 (列名) の値 (投稿によって送信された値) に挿入し、挿入操作を完了し、挿入が成功した場合はリスト ページにジャンプします

⑤ リストページに表示される情報には、ニューステーブルの内部結合分類テーブルから * を選択するという 2 つのテーブルの結合クエリが必要です。分類 ID = 分類テーブル.ID、1 つはニューステーブル、もう 1 つはニューステーブルです。分類表

4. ニュースを削除するためのアイデア:

① この操作はニュース リストで実行されます

② まず、管理用のタグ メンバーをクリックし、そのニュースを削除したい場合は、ニュース ID をサーバーに渡し、次に取得値を渡す必要があることにも注意してください:

③ サーバーは $_GET['id'] を使用して、渡されたばかりの ID 値を取得します

④ 次のような操作を実行しますデータベースに接続し、SQL ステートメントを結合します: delete from news table where id=$_GET['id']

⑤ SQL ステートメントを実行し、実行が成功すると一覧ページにジャンプし、失敗した場合のプロンプト



5. ニュース変更のアイデア:

① この操作はニュース リストで実行されます。 , ただし、追加ページと似ていますが、追加ページとは異なり、フォーム ページが必要です。

② まず、管理者の a タグがあることを確認します。また、ニュースを変更するには、ニュース ID をサーバーに渡し、次に値を取得する必要があることに注意してください:

③ サーバーは $_GET['id'] を使用して、渡されたばかりのニュースを取得します。 まず、id 値に対して操作クエリを実行し、このレコードの情報をクエリし、それを次の形式に出力します。また、後で変更する必要がある場合は ID が必要になることに注意してください。そのため、

の形式の非表示フィールドに ID を入力します。④ ユーザーが [保存] をクリックすると、サーバーは新しいデータを取得し、それを確認します。は空ではありません。データベースに接続し、その他の操作を行います。

⑤ SQL ステートメントを結合し、更新操作を実行します。更新テーブル名セット フィールド名 = 新しい値 ($_POST 新規送信)、フィールド名 = 新しい値 ( $_POST が新しく送信されました)、。 。 。 。 。 。修正後、一覧ページにジャンプします

6. ニュース検索のアイデア

① ニュース一覧ページに検索ボックスを書き込みます。 、カテゴリドロップダウンメニュー(動的に読み込む)、検索ボタン

② 検索ボタンをクリックし、リストを表示するphpファイルに送信したまま

送信された値を判断しますテキスト ボックスにある場合は、この情報を where 条件

④ に組み立てて SQL ステートメントを実行します:

select news.id,title,content,fenlei.name,user_name,add_time,click from news inner join fenlei on news.fenlei_id=fenlei.id order by news.id where (タイトルは「%送信されたテキスト ボックスの値%」、コンテンツは「%送信されたテキスト ボックスの値%」) とニュース. fenlei_id=送信されたドロップダウンボックスの値

⑤ 実行完了後、フォームを再出力


7. ホームページナビゲーション機能開発 (ナビゲーションはニュース カテゴリを表示することです)

答え: ① フロントエンドのホームページを作成するには、ナビゲーション バーが必要です

② ナビゲーションはデータベースから動的に読み取られるため、 PHP を使用して mysql を操作して分類表を読み取る必要があります。 データ

Spell sql state: select * from分類表 その後、sql ステートメント

を実行します。 ④ データを読み込んだ後、データをループします。 ul のリスト

8. ホームページの最新ニュース機能の開発

① フロントページに ul リストである最新ニュース モジュールを作成します

② 最新のニュースはデータベースから読み込まれますので、ニューステーブルのデータを読み込むにはPHPを使ってmysqlを操作する必要があります

③ 最新のニュースなので最新でなければなりません。

④ SQL 文の綴り: select title, add_time from news order by add_time desc limit 3

⑤ 読み込み後データをulのリストにループします

9. ホームページの話題のニュース機能の開発

① フロントページに話題のニュースモジュールを作成します, これはULリストです

② 話題のニュースはデータベースから読み込まれますので、phpを使ってmysqlを操作してニューステーブルのデータを読み込む必要があります

最新なのでニュース、クリック数が最も多いニュースである必要があるため、クエリ条件はクリック数に応じて降順にソートする必要があります

④ Spell sql ステートメント: select id, title, add_time, click from news order by click desc制限 3⑤ データを読み込んだら、ul

のリストにデータをループします。