1. PHP の概要
PHP は、習得と使用が簡単なサーバーサイド スクリプト言語です。プログラミングの知識がほとんどなくても、PHP を使用して真にインタラクティブな WEB サイトを構築できます。このチュートリアルは、言語を完全に理解することを目的としたものではなく、動的な Web サイトの開発をできるだけ早く開始できるようにすることを目的としています。 HTML (または HTML エディター) の基本的な知識とプログラミングのアイデアがあることを前提としています。
1. はじめに
PHP は、動的な Web ページを生成できるツールの 1 つです。 PHP Web ファイルは通常の HTML Web ファイルとして扱われ、編集する場合は、HTML を編集するのと同じ方法で PHP を作成できます。
PHP は、ハイパーテキスト プリプロセッサ (PHP: Hypertext Preprocessor) の略です。 PHP は完全に無料で、お金を費やす必要はなく、PHP 公式サイト (http://www.php.net) から自由にダウンロードできます。 PHP は GNU Public License (GPL) に準拠しており、これに基づいて Linux や Emacs などの多くの人気ソフトウェアが誕生しました。ソース コードに無制限にアクセスでき、必要な機能を追加することもできます。 PHP は、ほとんどの Unix プラットフォーム、GUN/Linux、および Microsoft Windows プラットフォームで実行できます。 Windows PC または Unix マシンに PHP をインストールする方法については、PHP 公式サイトを参照してください。インストールプロセスは簡単です。
あなたのマシンが 2000 年問題を解決すれば、PHP には 2000 年問題も発生しません。
1.1 歴史
3 年前、Rasmus Lerdorf はオンライン履歴書を作成するために個人ホームページ ツールを作成しました。とてもシンプルな言語です。それ以来、ますます多くの人がこの言語に注目し、その拡張についてさまざまな提案を行うようになりました。多くの人々の献身と言語自体のソースフリーの性質を通じて、この言語は機能豊富な言語に進化し、今も成長を続けています。
PHP は習得が簡単ですが、mod_perl (Web サーバーに埋め込まれた Perl モジュール) よりも遅くなります。現在、mod_perl と同じくらい高速な Zend という新しいエンジンがあり、PHP4 はこのエンジンを最大限に活用できます。 PHP4 はまだベータ版のテスト段階にあります。 Andy Gutmans と Zeev Suraki が Zend の主な著者です。詳細については、Zend サイト (http://www.zend.com) にアクセスしてください。
PHP のアプリケーションは個人の Web プロジェクトで大幅に成長しました。 1999 年 10 月の Netcraft レポートによると、PHP テクノロジを使用しているドメインは 931,122 個、IP アドレスは 321,128 個ありました。
1.2 PHP の進歩
PHP を適用すると多くの利点があります。もちろん、既知の欠点は、PHP はオープンソース プロジェクトであるため商用サポートがなく、その結果として実行速度が遅くなる (PHP4 まで) ことです。しかし、PHP のメーリング リストは非常に便利で、Yahoo! や Amazon.com などの非常に人気のあるサイトを実行していない限り、PHP の速度の違いに気づくことはありません。少なくとも私は感じませんでした!さて、PHP の利点を見てみましょう:
-学習プロセス
私は個人的には PHP の非常にシンプルな学習プロセスを好みます。 Java や Perl とは異なり、まともなプログラムを書くために 100 ページを超えるドキュメントに頭を埋める必要はありません。いくつかの基本的な構文と言語機能を理解していれば、PHP コーディングの旅を始めることができます。後でコーディング プロセス中に問題が発生した場合は、関連ドキュメントをもう一度読むことができます。
PHP の構文は C、Perl、ASP、または JSP と同じです。上記の言語のいずれかに精通している人にとって、PHP は単純すぎます。逆に、PHP について詳しく知っていれば、他のいくつかの言語を学ぶのは簡単になります。
PHP のコア言語機能をすべてマスターするには 30 分しかかかりません。あなたはすでに HTML についてよく知っているかもしれませんし、編集およびデザイン ソフトウェアを使用したり、手動で美しい WEB サイトを作成する方法さえ知っているかもしれません。 PHP コードはサイトに簡単に追加できるため、サイトを設計および保守するときに、PHP を簡単に追加してサイトをより動的にすることができます。
- データベース接続
PHP は、多くのデータベースに接続する関数を使用してコンパイルできます。 PHP と MySQL は現時点では優れた組み合わせです。データベースに間接的にアクセスする独自の周辺関数を作成することもできます。このようにして、使用するデータベースを変更するときに、そのような変更に適応するようにコーディングを簡単に変更できます。 PHPLIB は、一般的なトランザクションのニーズを提供できる最も一般的に使用される基本ライブラリのシリーズです。
- スケーラビリティ
前に述べたように、PHP は急速な発展期に入っています。プログラマーではない人が PHP に追加機能を拡張するのは難しいかもしれませんが、PHP プログラマーにとっては難しくありません。
- オブジェクト指向プログラミング
PHP はクラスとオブジェクトを提供します。 Web ベースのプログラミング作業には、オブジェクト指向プログラミングのスキルが必要です。 PHP はコンストラクター、抽出されたクラスなどをサポートします。
- スケーラビリティ
従来、Web ページの対話は CGI を通じて実現されていました。 CGI プログラムのスケーラビリティは、実行中の CGI プログラムごとに個別のプロセスを開くため、理想的ではありません。解決策は、CGI プログラムを Web サーバーに書き込むために一般的に使用される言語 (mod_perl、JSP など) のインタープリターをコンパイルすることです。 PHP はこの方法でインストールできますが、CGI をこの方法でインストールしようとする人はほとんどいません。埋め込み PHP はよりスケーラビリティが高くなります。
- さらなる機能
Web プログラミングにより適したものにするために、PHP 開発者は、使いやすいレイヤーを含む多くの周辺機器の人気のある基本ライブラリを開発しました。 PHP を使用して、Oracle、MS-Access、Mysql などのほとんどのデータベースに接続できます。ハエに絵を描いたり、電子メールをダウンロードまたは表示するプログラムを作成したりできます。ネットワーク関連の機能も実行できます。何よりも、PHP インストールに必要な機能を選択できます。 Nissan の Xterra の言葉を借りれば、PHP はやりたいことはすべて実行でき、万能です!
1.3 競合他社: ASP、mod_perl、JSP
ASP/JSP で何ができるのかは確かにわかりません。しかし、明らかなことは、そのようなコードを書くのがどれほど簡単であるか、それらを購入するとどれほど高価になるか、そしてどれほど高価で強力なハードウェアが必要になるかということです。中立的な意見(例えば、SUN や Microsoft の数百万ドルの影響を受けていないなど)があれば、ついでに教えてください。
私の知る限り、JSP は Java に基づいているため、Java プログラマーは簡単にコーディングを始めることができます。 ASP は複数の言語をサポートする機能を備えた一般的なエンジンですが、デフォルトで最も一般的に使用されているのは VBScript です。
mod_perl は Perl と同じくらい強力ですが、より高速です。
2. PHP 入門
PHP サイトのオンライン チュートリアルはすでに優れています。他のチュートリアルへのリンクもあります。記事のこの部分では、PHP について詳しく説明します。私の目的は、あなたがすぐに PHP プログラミングを始められるようにすることだけです。
2.1 最初の要件
まず、PHP をサポートする動作する Web サーバーが必要です。サーバー上のすべての PHP ファイルの拡張子は .php3 であると仮定します。
2.2 PHP のインストール
次の内容を含む test.php3 という名前のファイルを生成します:
> 次に、このファイルをブラウザで開きます。このページを参照して、PHP インストールで使用されるオプションを確認してください。
2.3 構文
前に述べたように、PHP コードと HTML コードを混在させることができます。したがって、この 2 つを区別する方法が必要です。以下にいくつかの方法を示します。最も使いやすいものを選択して、それを使い続けることができます。
HTML から分離します
使用できるメソッドは次のとおりです:
. .
ステートメント
PHP ではステートメントは (;) で区切られます。 HTML から分離されたこれらのタグは、ステートメントの終わりも示します。
コメント
PHP は C、C++、Unix スタイルのコメントをサポートしています:
/* C、C++ スタイルの複数行コメント*/
// C++ スタイルの単一行コメント
# Unix スタイルの単一行コメント
Hello, World!
これまでに学んだ知識を使えば、おそらくプログラミングの世界で最も有名な単語の 1 つを出力する最も簡単なプログラムを作成できます。
"Hello World!"
// 単一行の C++ スタイルのコメント
/*
メッセージの出力
*/
# Unix スタイルの単一行のコメント
2.4 データ型
PHP は、整数、浮動小数点数、文字列、配列、オブジェクトをサポートします。変数の型は通常、プログラマによって決定されるのではなく、PHP ランタイムによって決定されます (なんと安心しました!)。ただし、型は関数 Cast または settype() によって明示的に設定することもできます。
数値
数値型は整数または浮動小数点数です。次のステートメントを使用して値を割り当てることができます:
$a = 1234; # 10 進数
$a = -123; # 8 進数 (10 進数の 83 に等しい)
$a = 0x12; # 16 進数 (18 進数に等しい)
$a = 1.234; # 浮動小数点数 "倍精度数値"
$a = 1.2e3; # 倍精度数値の指数形式
String
文字列は、一重引用符または二重引用符で囲まれたフィールドによって定義できます。違いは、一重引用符で囲まれた文字列はリテラルに定義されるのに対し、二重引用符で囲まれた文字列は展開できることです。バックスラッシュ () を使用して、特定の特殊文字を区切ることができます。例:
$first = 'Hello';
$next = "World";
$full1 = "$first $second"; # Hello World を生成する
$full2 = '$first $second'; 2 つ目
は算術記号を使用して文字と数字を接続できます。文字は、元の位置を使用して数値に変換されます。詳細な例は PHP マニュアルにあります。
配列とハッシュ テーブル
配列とハッシュ テーブルは同じ方法でサポートされます。それらをどのように使用するかは、それらをどのように定義するかによって異なります。 list() または array() を使用してそれらを定義することも、配列に値を直接割り当てることもできます。配列のインデックスは 0 から始まります。ここでは説明していませんが、多次元配列は簡単に使用できます。
// 2 つの要素を含む配列
$a[0] = "first";
$a[] = "third"; // 配列要素を追加する簡単な方法
// $a[2] には値「3 番目」が割り当てられます
echo count($a); // 配列には 3 つの要素があるため、3 を出力します
// 1 つのステートメントで配列を定義し、値を割り当てます
; $myphonebook = array (
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
); ああ、学部長のことは忘れてください 、要素を追加しましょう
$myphonebook["dean"] = "5397";
// 定義した carale 要素が間違っています、修正しましょう
$myphonebook["carole"] => "4522"
/ / Haven'配列に対して同様のサポートを使用する方法を説明しましたか?見てみましょう
echo "$myphonebook[0]"; // sbabu
echo "$myphonebook[1]" // 5348
配列またはハッシュ テーブル用の他の便利な関数には、sort()、next ()、 prev() と each() です。
Object
new ステートメントを使用してオブジェクトを生成します:
class foo
{
function do_foo ()
{
echo "Doing foo."
}
}
$bar = new foo; do_foo ();
変数の型を変更する
PHP マニュアルには次のように記載されています。「PHP では、変数の宣言時に変数の型を直接定義することはサポートされていません (また、必要ありません)。変数の型は状況に基づいて決定されます」変数を指定すると、 var に文字列が代入され、整数値が代入されると、それは整数になります。 (ASCII 48)
$foo++; // $foo は文字列 "1" (ASCII 49)
$foo += 1; // $foo は整数 (2) になります。 1.3; // $foo は倍精度 (3.3)
$foo = 5 + "10 匹の子豚" // $foo は整数 (15)
$foo = 5 + "10 匹の子豚";は整数(15)です
変数の型を強制的に変換したい場合は、C言語と同じ関数settype()を使用できます。
2.5 変数と定数
変数の前にドル記号 ($) が付いていることに気づいたかもしれません。すべての変数はローカル変数です。定義された関数で外部変数を使用するには、global ステートメントを使用します。また、変数のスコープを関数に制限したい場合は、static ステートメントを使用します。
$g_var = 1; // グローバル スコープ
function test()
{
global $g_var; // これにより、グローバル変数を宣言できます
}
より高度な変数の変数表現です。 PHPのマニュアルを参照してください。これは時々役立つことがあります。
PHP には多くの組み込み定義変数があります。また、define 関数を使用して独自の定数を定義することもできます (define("CONSTANT", "value") など)。
2.6 演算子
PHP には、C、C++、Java でよく見られる演算子があります。これらの演算子の優先順位も一貫しています。代入には「=」も使用します。
算術と文字
文字に関連する演算子は次の演算子の 1 つだけです:
$a + $b: 加算
$a - $b: 減算
$a * $b: 乗算
$a / $b: 除算
$a % $b: 剰余 (剰余)
$a . $b: 文字列の連結
論理和の比較
論理演算子は:
$a || または
$a または $b: または
$ a && $b:
$a と $b :
$a と同じ xor $b: XOR ($a または $b が true の場合は true、両方が同じ場合は false)
$a : Non! -
比較演算子には以下が含まれます:
$a == $b :
$a と等しい != $b :
$a と等しくない $a より小さい $a > $b:
$a >= $b:
以上 C と同様に、PHP にも三重演算子 (?:) があります。 PHP にもビット演算子が存在します。
優先順位
C や Java と同じです!
2.7 制御プロセス構造
PHP には C と同じプロセス制御があります。以下に簡単に紹介します。
if、elseif、if(): endif
if (式 1)
}
elseif (式 2) . 。
}
//
if (式 1) .
.
その間、ループします。 do..while、for
{
}
{
}
for (式 1; 式 2; 式 3)
. .
}
//または Python
while (expr) .
switch
switch の最良の代替物: i)
{
case 0:
print "i = 0";
case 1:
print "i = 2" ;
break、続行
break電流ループ制御構造を破壊します。
continue は、残りの現在のループから抜け出し、次のループの実行を継続するために使用されます。
require、include
C の #include 前処理と同じです。 require で指定したファイルは、メイン ファイル内のその場所を置き換えます。ファイルを条件付きで参照する場合は、include() を使用できます。これにより、複雑な PHP ファイルを複数のファイルに分割し、必要に応じて個別に参照できるようになります。
2.8 関数
次の例のように独自の関数を定義できます。関数の戻り値は任意のデータ型になります。
function foo (変数名 1、変数名 2、...、変数名 n)
{
echo "Example function.n";
return $retval;
すべての PHP コードは、他の関数やクラスの定義も含め、関数定義に含めることができます。関数は参照される前に定義する必要があります。
2.9 クラス
クラスモデルを使用してクラスを作成します。クラスの詳細な説明は PHP マニュアルを参照してください。
class Employee
{
var $empno; // 従業員数
function add_employee($in_num, $in_name)
{
$this->empno = $in_num; this ->empnm = $in_name;
function show()
{
echo "$this->empno, $this->empnm"
}
function changenm($in_name);
{
$this->empnm = $in_name;
}
}
$sbabu = 新しい従業員;
$sbabu->changem("babu " );
$sbabu->show();
3. 例から始めます
PHP の多くの機能は、他のソフトウェアまたはツールに関連しています。これまでに学んだ PHP の知識を使用して、単純なインタラクティブな Web サイトの構築を試みることができます。このプロセスを通じて私たちは多くのことを学ぶことができます。それでは、典型的な個人 Web サイトの構築に焦点を当てましょう。
3.1 サイトを計画する
一般に、個人サイトには、ウェルカム ページ、ゲストブック ページ、ブックマーク リンク ページ、カウンター、連絡先情報、さらには写真コレクションやいくつかの音楽ファイルなどが含まれます。タイトルページ、連絡先情報ページ、履歴書ページから始めましょう。標準のユニバーサル ページ ヘッダーとフッターも必要です。
タイトルページ--front.html
ここには非常に単純な HTML ファイルがあります:
GT;ここにはまだ何もありませんが、私の質素な住居へようこそ。
でも、すぐにもっと増えることを願っています。
連絡先

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。

XSS攻撃を防ぎ、リソースのロードを制限し、ウェブサイトのセキュリティを改善できるため、CSPは重要です。 1.CSPはHTTP応答ヘッダーの一部であり、厳格なポリシーを通じて悪意のある行動を制限します。 2。基本的な使用法は、同じ起源からのロードリソースのみを許可することです。 3.高度な使用法は、特定のドメイン名がスクリプトやスタイルをロードできるようにするなど、より微調整された戦略を設定できます。 4。CSPポリシーをデバッグおよび最適化するには、コンテンツセキュリティポリシーレポートのみのヘッダーを使用します。

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

HTTPSは、HTTPに基づいてセキュリティレイヤーを追加するプロトコルであり、主に暗号化されたデータを介してユーザーのプライバシーとデータセキュリティを保護します。その作業原則には、TLSの握手、証明書の確認、暗号化された通信が含まれます。 HTTPSを実装する場合、証明書管理、パフォーマンスへの影響、および混合コンテンツの問題に注意を払う必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1
使いやすく無料のコードエディター

ホットトピック



