要件:
ナレッジ ポイントをブログ パークに整理します。各ナレッジ ポイントにはコード テストが伴う必要があり、コードは自分で入力する必要があります。 インストールと構成の操作をドキュメントにまとめ、コードを整理します。
Han Shuping 氏の推奨
Linux カーネルを学習する
アルゴリズムを研究する
ネットワーク技術を学習する (ネットワーク管理、ネットワーク セキュリティ)
データベースを研究する
PHP Notes.php は現在、zend 社、mysql(mysql->) によって管理されています;sun-> oracle) (LAMP) はクロスプラットフォームであり、複数のデータベースを同時にサポートしており、比較的効率的で、優れたセキュリティを備えています。無料で使用可能; オープン ソース コード (他の人のコードを学ぶ); Php4 と php5 はオブジェクト指向の弱いデータ型をサポートし始めます: WEB サイトは複数の Web リソースの集合です。簡単に言うと、Web アプリケーションは、複数の Web リソースを管理するために使用されるハードディスク上のディレクトリとして理解できます。 Web サイトは、Web サイトまたは Web プロジェクト/プロジェクトと呼ばれることがよくあります。PHP php の基本的な概念は、現在 zend 社によって管理されており、php スクリプトはサーバー側で実行されます 1994 (php1.0)、1995 (php2.0)、1997 (php3)。 .0)、2000 (php4.0)、2008 (php5.0) Php6.0 の追加: web2.0 のサポートの強化、Unicode のサポートの強化、オブジェクト指向プログラミングのサポートの強化、XMl プログラミングのサポート、soap (Simpleオブジェクト プロトコル)
l ソフトウェア開発には非常に重要な原則があります。それは、コンパイル環境と実行環境が一貫していなければなりません。
l まずは公式 Web サイトで情報を探し、さらに英語の Web サイトにアクセスしてください
B/S と C/S を比較すると、開発コストが低く、管理とメンテナンスが簡単で、製品のアップグレードが便利で、ユーザートレーニングコストが低く、使いやすいですおよびトラブルシューティング セキュリティが不十分である可能性は低く、クライアントは自由に変更できず、ブラウザによって制限されています。 何が送受信されるかを理解します。ツール: httpwatch Lighttpd サーバー、nginx サーバー Apache 手動管理 apache、コマンドラインで管理: httpd?k start[shutdown|restart] Httpd.conf Apache ディレクトリ構造 Apache サーバーbin: このディレクトリは、Apache で一般的に使用されるコマンドを保存するために使用されます。 httpd、apachemonitor
などcgi-bin: このディレクトリには Linux.sh
の下に一般的なコマンドが保存されますconf: 設定ファイル httpd.conf が保存されます
error: エラー記録
htdocs: サイトが保存されているフォルダー (デフォルトでは )、複数のサイトがある場合は、フォルダーごとに分類できます
icons: アイコンを保存します
logs: Apache 関連のログを記録します
manual: マニュアル
modules: apahche モジュール
Apache は起動時に httpd を読み取ります. conf、関連モジュールのロード
実行機構図
Mpm: mutil 処理モジュール マルチプロセッシング モジュール
Apr: ポータブル ランタイム ライブラリ
Apache のライフ サイクル構成仮想ディレクトリWeb アプリケーションを Apache のデフォルトの hdocs ディレクトリに置きます。 Apache が自動的に管理します。
l 仮想ディレクトリ ノードを追加します
#ようこそページ
DirectoryIndexindex.htmlindex.htm,index.php
#サイトエイリアス
エイリアス/myblog "D:/myblog"
#アクセス許可設定
注文許可、拒否
すべてから許可
l コメントot "D:/ php env/apache/htdocs"
10. アクセス許可設定
# は、d ドライブ配下の myblog ファイルに対する許可設定を設定することを意味します
# は、最初にすべての IP アクセスを許可し、拒否することを意味しますすべて拒否することを意味します IP アクセスの場合、最初に許可を見て、次に拒否します
許可、拒否を順に並べます
#最初に許可を見てください
すべてから許可
Case
# 許可の設定は、deny をオーバーライドします
218.20.253.2 から許可
#218.20 で始まる IP は拒否されます
218.20 から拒否
< ;/Directory>
11. 仮想ホスト設定
l httpd-vhosts.conf を有効にする:
httpd.conf ファイルに
l を追加します。 extrahttpd-vhosts.conf 仮想ホスト
#ようこそホームページをここで設定します
DirectoryIndexindex.htmlindex.htmindex.php
#他の人にページの変更を許可しない
AllowOverride None
#アクセス権限を設定する
許可、拒否を指示する
すべてから許可する
l hostsファイルを変更し、www.sohuにリダイレクトします.com からローカル ページにアクセスします
演習:
Httpd.conf ファイルで www.sohu.cn の仮想ホスト (Web サイト、サイト) を構成し、ウィンドウ システムに www.sohu.cn ホストを登録しますhttpd.conf ファイル httpd-vhosts.conf を有効にする、つまりログアウトします #,
conf/extra/httpd-vhosts.conf を含めます
仮想ホストが c:myweb (つまり Web サイト) にあると仮定します
http-vhosts.conf ファイルを設定します
IP とホストのマッピング関係をホスト ファイルに追加します: c:/windows/system32/drivers/etc/hosts
(ホストのドメイン名構成のパブリック ネットワーク IP とイントラネット IP について考えてください)
仮想サーバーのルート ディレクトリ内host itcast という名前のサイトを作成し、アプリケーションの下にindex.html ページを作成し、Web アプリケーションをデフォルトの Web アプリケーションにマップし、index.html ページを Web アプリケーションのホームページとして設定します
l Web ページのプロセス
例: http://www.sohu.com/news.html
にアクセスします1) ホスト www.sohu.com を分析します
2) ローカル ホスト ファイルをクエリします: windows/sys32/drivers /../hosts(ip127.0.0.1 はドメイン名に対応します)
3) ローカル Hosts ファイルで IP が見つからない場合は、DNS (ドメイン ネーム サーバー) の IP ドメイン名に移動します
4) ip
5) http リクエストパッケージを送信します
6) Apache が http リクエストを解析します パッケージ: ホストを解析し、サイト名を解析し、リソース名を解析します
7) リソースを取得します
12. Apache が PHP をサポートするように設定します (Apache はサポートしません)。デフォルトで php を処理します)
スイート ソフトウェア: appserver または wmap。このソフトウェアは、必要な環境をパッケージ化してインストールします
Php と Apache の統合 (つまり、Apache が php を処理できるようにします):
#Apache に php 処理モジュールをロードさせます
LoadModule php5_module ~php インストール パス/php5apache2_2.dll
#phpinidir これは、phpのiniファイルを指定するために使用されます。
PHPIniDir "~phpモジュールのインストールパス"
#この設定は、リソースが*.phpの場合、phpによって処理されることを意味します
AddType application/ x-httpd- php .php .phtml
php.ini-devlopment ファイルを php.ini に変更します。 php.ini で PHP 設定を変更する必要があるためです。開発モードを開始します。
php.iniに拡張モジュールのパスextension_dir=~phpのインストールパス/extを指定(グラフィックライブラリやデータベースライブラリなど多くの関数ライブラリが入っています)、php
の拡張ライブラリのパスを指定しますLet php.ini で php_mysql を有効にする: mysql 関数をサポートします
開始されていない場合は、関連する関数が見つからないというエラーが報告されます。mysqlをインストールします
phpmyadminをインストールします(phpmyadminはサイトなので、Webサイトのルートディレクトリに直接抽出します)
discuzフォーラムをインストールして設定します
1) discuzフォーラムコードを準備します
2) それを抽出しますWeb サイトのルート ディレクトリ 次へ
3) discuz アップロード ファイルを discuz フォルダーにコピーします
4) config.inc.php データベース構成を変更し、管理者 $forumfounders='admin
5) http にアクセスします。 //localhost/ discuz'
設定を完了します: 1 つのサーバー上に複数のサイトがあり、サイトごとにドメイン名を設定します
解決策 1:
1) ポートを通じて異なるサイトを区別する: サイトをバインドする方法に従います 準備
仮想ホスト構成を有効にするために httpd.conf を変更します。 httpd-vhosts.conf ファイルを構成します。
にバインドされる新しいドメイン名も追加します。 ip
仮想ホスト 127.0.0.1:81 を httpd-vhosts.conf に追加します
Apache がポート 81 をリッスンできるようにします: Listen 81 を追加します
新しいドメイン名 127.0.0.1 を hosts ファイル www.*** に追加します。 com
サーバーアクセス www.***.com:81
を参照解決策 2:
ServerName ポートを通じて異なるドメイン名を区別する
httpd-vhosts.conf ファイルに構成を追加します:
ServerName www.** *.com
DirectoryIndex news.html
PHP 変数 (データと変数の概念は異なることに注意してください) PHP 変数は $ から定義されます。 PHP 変数のデータ型は、実行時コンテキスト。 PHP は弱いデータ型プログラミング言語です (データ型を変更しないでください) PHP の基本データ型: 整数、10 進数 (浮動小数点)、float/double (php は単精度と倍精度を区別しません)、ブール型 boolean、stringタイプphp複合タイプ: 配列配列、オブジェクト(オブジェクト)
php特殊データタイプ: null、リソースタイプ(リソース): $conn=mysql_connect("localhost","root","root");
$a; //$a のみが書き込まれ、値が割り当てられていない場合 Var_dump($a);//NULLメモリ領域が割り当てられていないことを意味します Echo $a; ?> |
コードに関する考慮事項: 堅牢性、スケーラビリティ、セキュリティ、コード効率 (同時実行性、効率性) ブール型の詳細な説明
a) True と false は大文字と小文字を区別しません
b) 次の値は false として扱われます:
ブール値FALSEそのもの
整数値0
浮動小数点値0.0
空の文字列、および文字列「0」
要素を含まない配列
メンバー変数を含まないオブジェクト
特殊な型 NULL (設定されていない変数を含む)
浮動小数点の詳細a) 浮動小数点数 (倍精度または実数とも呼ばれます)、浮動小数点数の精度は 14 (左から始まり、最初の非0 の数値は精度の始まりです。 $a=0.23456789022222988;$b=0.00002222233334444;
b) 浮動小数点数の語長はプラットフォームに依存し、通常、最大値は 1.8e308 で、10 進数 14 桁の精度になります (この制限はは非常に重要です)
文字列の詳細a) 1 つの文字は 1 バイトを占有します。$a="hello" は 5 バイトを占有します
b) 理論的には、文字列のサイズに制限はありません。メモリを超えます
c) 文字列を使用する場合、一重引用符または二重引用符を使用できます。違いは次のとおりです。二重引用符は変数の値を解釈します。文字列が一重引用符で囲まれている場合、「」が処理されると「」が出力されることを除いて、他のルールは同じです。
「」記号に変数が含まれる場合はその値が出力され、''記号に含まれる場合は文字そのものが出力されます。
PHP 文字型の自動変換変数の型はプログラマによって設定されるのではなく、変数が使用されるコンテキストに基づいて実行時に PHP によって決定されます。var_dump($variable1) を渡すことができます。 , $variable2...) の型を表示する方法。 (PHP はコンパイルなしで実行できます)
10. PHP 定数
a) 定数 $
の前にドル記号はありませんb) 定数は、define() 関数または const で定義され、代入を通じて定義することはできませんその際、定数の名前は通常、すべて大文字で、アンダースコアで区切られます。
define("TAX_RATE",0.08);プログラムでは、pi、税率などの定数の使用を検討してください。
const TAX_RATE=0.08;
c) 定数は、変数のスコープに関係なくどこでも定義してアクセスできます。
d) 定数が定義されたら、
e) 定数の値はスカラーです [基本データ型:]
11. 式
式は PHP の最も重要な基礎です。 PHP では、作成するほぼすべてが式です。
いわゆる表現とは、価値のあるものであれば何でもいいのです。 $a=7/3;小数点以下を2桁に保存する方法(関数処理)
比較演算子: $a===$b は一致 $a!==$b は一致しない(値が等しい) 、型も同じです)
$a!=$b は値が等しくない場合にのみ true
$a!==$b は値が等しくない限り true または型が等しくない
文字列演算子 (. ): 2 つの基本データ型が . を使用して接続される場合、その内容は文字列として連結されることを意味します。
型演算子:instanceof は、PHP 変数が特定のクラスのインスタンスに属しているかどうかを判断するために使用されます。基本データ型に属するかどうかは判断できません。
12. Switch が使用できるデータ型は、整数、10 進数、文字列、ブール値、null です。 if 分岐と switch 分岐の研究から判断すると、if は特定の範囲に関する判断であることが多く、switch は点に関する判断です。
PHP 関数 基本概念: 関数を完成させるプログラム命令 (ステートメント) の集合です。 PHP では、関数はカスタム関数とシステム関数 (PHP ステートメント自体によって提供され、直接使用できる関数。PHP 設計者は、多くの人がプロジェクト開発プロセス中にいくつかの関数を使用すると考えています) に分類されます。関数の基本構造:Function 関数名 (パラメーター...) {
//関数本体
return 戻り値 (オプション)
}
関数のパラメーターは複数にすることができ、データタイプは PHP 言語でサポートされます 任意のタイプ。関数名はカスタム変数と同じです。最初の文字は _、A ~ Z、a ~ z のみで始めることができ、数字や特殊文字で始めることはできません。
Php のページは相互に呼び出しますa) require() と require_once()
は通常、php ページの先頭に配置され、php が実行される前に、require に含まれるページが読み込まれます。エラーが発生すると、プログラムが終了します (エラーレポート)。
これら 2 つの違いは、前者はファイルが見つかったときにそのファイルをインクルードすること、後者はそのファイルがインクルードされているかどうかを判断することです。インクルードされている場合、そのファイルはインクルードされなくなります。リソースを節約し、再定義エラーを回避できます。
b) include() と include_once()
は、php ページの呼び出し関数の前に配置できます。php が実行されると、include によって導入された php ページが読み込まれ、エラーが発生した場合、プログラムは終了しません。実行を続行します。
違い: 前者の include はファイルが見つかったときにそのファイルをインクルードし、後者は include_once()
c) include と require の違い (include_once と require_once の同時の違い)
同じこと: 他のページを紹介することができます
違い: include でエラーが発生した場合、プログラムは実行を継続しますが、require でエラーが発生した場合、プログラムは終了します。
d) どちらを使用するか: プロジェクトで作業するときは、基本的に require_once() を使用します。 PHP が実行されると、関数呼び出しが発生すると、新しいスタックが開かれます。関数は単なる定義であり、関数実行のルールは、関数が表示されている限り、PHP は新しいスタックを開きます。各スタックの変数は互いに独立しています。 (グローバル変数とローカル変数を理解する)
PHP には 3 つのプロンプトがあります:Notice: Waring: 警告エラー: Error
関数内で特定の変数を使用したくない場合、または使用を完全に停止したい場合特定の変数を削除するには、unset (変数名) を使用します。 php 関数では、特定のパラメータにデフォルト値を割り当てることができます。 Php はデフォルトで値渡しになります。参照 (アドレス) で渡す必要がある場合は、& 変数名を使用します。 $a=1>>2;
$b=-1>>2;
$c=1<<2;
$d=-1<<2 ;
Echo “a=".a;
?>
バイナリ: 2 つごとに 1 つが入ります。 2 進数を使用すると、0 と 1 の 2 つの数値のみが使用されるため、電子的に実装するのが簡単です。同時に、任意の数は 0 と 1 の組み合わせで表すことができます。
元のコード、補数コード、補数コード:1--> 元のコード 00000000 00000000 00000000 00000001
a) バイナリの最上位ビットは符号ビットです: 0 は整数を表し、1 は負の数を表します
b) 整数 元のコード、補数コード、補数コードはすべて同じです
c) 負の数の補数コード = 元のコードの符号ビットはそのままで、他のビットは反転します
-1 --> 元のコード: 10000000 00000000 00000000 00000001
1 の補数: 11111111 11111111 11111111 11111110
1 の補数: 11111111 11 11111111 11111111
d) 負の数の補数 = 1 の補数 + 1
e) 0 の補数は 0 です
f) Php 符号なしの数値などというものはありません。つまり、PHP のすべての入力は符号付きです
g) コンピューターが計算を実行するとき、それらはすべて 2 の補数法を使用して計算されます。これは、数値が正か負かに関係なく、その補数に変換してから演算する必要があることを意味します。
Php には、「ビットごとの AND &」、「ビットごとの OR |」、「ビットごとの XOR ^」、「ビットごとの否定~」という 4 つのビットごとの演算があります。 演算規則は次のとおりです:ビットごとの AND & : 2 つのビットは両方とも次のとおりです。 1、結果は 1
ビットごとの OR|: 2 つのビットの 1 つが 1、結果は 1
ビットごとの XOR^: 2 つのビットの 1 つが 0、1 つが 1、結果が 1
ビットごとの否定~: 0->1,1->0
ステップ: 補数を見つけます (すべての演算が補数で実行されるため)
~2=? -3
11111111111111111111111111111111111 111 11111111 11111 111 11111100 (最初に 1 を引きます)
元のコード: 10000000 0000000 0000000 000000011 (-3 )
2&3: まず 2 と 3 の補数 =2 を求めます
2 の補数: 00000000 00000000 00000000 0000001 03 の補数: 00000000 00000000 00000000 000000 11
2&3 : 00000000 00000000 00000000 00000010
ビット シフト演算: 右 2 進数を左右に移動します。 演算ルールは次のとおりです:>> 下位ビットはオーバーフローし、符号ビットは変更されず、オーバーフローした上位ビットはそのままです。符号ビットで埋められます
<< 算術左シフト: 符号ビットは変更されず、下位ビットの補数 0
$a=1>>2; $a=0
1 の補数: 00000000 00000000 00000000 000000011>>2 : 0000000 00000 0000 00000000 00000000 (0)
$b= -1>>2; -1
-1 の元のコード: 10000000 00000000 00000000 00000001
逆コード
-1 の: 11111111 1111111 1111111 11111110-1 の補数: 1111111 11111111 11111111 11111111
-1 -1>>2 : 1111111 11111111 11111111 11111111 (結果は逆コードです)
逆コード: 1111111 11111111 11111111 11111110
元のコード: 1000000 0000000 000000000 00000001(-1)
配列データが必要な理由を調べます。複数のデータを格納するために使用できる型は配列と呼ばれます。 概念
$array[0]=123;[0]--> 添字、キーワード
$array[0]-->配列の要素
123 -->要素に対応する値
$array--->配列名
PHP 配列では、要素に格納される値は任意のデータ型にすることができます。
$arr[true]=”こんにちは”; ==>$arr[1]
$arr[false]=”世界”;==>$arr[0];
$arr[null] ="Beijing";==>$arr[null] または $arr[""];
キー値として小数が使用されている場合、小数部分は自動的に切り捨てられます。
print_r を使用して配列を表示できます。
PHP 配列は動的に拡張できます。
$a = array(2,3);
$a[2]=56;
Echo $a[2];
1次元配列参照トラップ: $arr[bar]=”hello , world ";
”echo $ arr [bar]; (bar を定数として使用します)& & lt;? PHP
$ a [0] = 1; $ a [1] = 2; $ a [2 ] =5;
カウント ($a); =3
$a[0]=1;$a[5]=2;$a[10]=5;
カウント ($a);
$arr=array();
Echo count($arr); =0
Unset() 関数を使用すると、配列内の要素を破棄し、変数を削除できますが、次のキーワードに注意してください。配列のインデックスは再作成されません。
?>
配列はデフォルトでアドレスではなく値を渡します。デフォルトでは、オブジェクトにはアドレスが渡されます。
並べ替え、選択並べ替え、挿入並べ替え 並べ替えとは、一連のデータを指定された順序で並べ替えるプロセスです。並べ替えはプログラマーの基本スキルです。 カテゴリ: a. 内部ソート方法: 処理が必要なすべてのデータがソートのために内部メモリにロードされます。交換ソート方式(バブル方式、クイックソート方式)、選択ソート方式、挿入ソート方式を含む
b. 外部ソート方式:データ量が多すぎてメモリに読み込むことができず、ソートには外部メモリが必要です。 。マージ ソートと直接マージ ソートを含みます。