PHP の学習 - データの保存と取得
データを保存するには、通常のファイルに保存するか、データベースに保存するという 2 つの基本的な方法があります。
データの書き込み:
- 1. ファイルを開きます。ファイルが存在しない場合は、最初にファイルを作成する必要があります。
- 2. このファイルにデータを書き込みます。
- 3. このファイルを閉じます。
データ読み取り:
- 1. ファイルを開きます。ファイルを開けない場合は、これに注意して正しく終了する必要があります。
- 2. ファイルからデータを読み取ります。
- 3. このファイルを閉じます。
ファイル モードの選択:
ファイルを開くときに、次の 3 つのオプションがあります。
- 1. ファイルを読み取り専用、書き込み専用、または読み取りと書き込みのいずれかで開きます。
- 2. ファイルを書き込む場合は、既存のファイルの内容を上書きするか、見えない端に新しいデータを追加するだけです。ファイルがすでに存在する場合、ファイルを上書きする代わりにプログラムの実行を終了できます。
- 3. セカンダリ コピー モードとプレーン テキスト モードを区別するシステムにファイルを書き込む場合は、使用する方法も指定する必要があります。
関数 fopen() は、上記の 3 つのメソッドの組み合わせをサポートしています。
サーバー設定に応じて、ドキュメント ルート ディレクトリは次の 3 つの方法で取得できます:
- $_SERVER['DOCUMENT_ROOT']
- $DOCUMENT_ROOT
- $HTTP_SERVER_VARS['DOCUMENT_ROOT']
フォーム データの場合は、最初のスタイルが優先されます。
ファイルを開くfopen(path,mode)
ファイルの書き込み: fwrite($fp, &outputstring)
ファイルを閉じる: fclose($fp)
fopen() 関数のファイル モード
- r 読み取り専用読み取りモード - ファイルを開き、ファイル ヘッダーから読み取りを開始します
- r 読み取り専用 読み取り/書き込みモード - ファイルを開き、ファイル ヘッダーから読み取りと書き込みを開始します。
- w 書き込み専用 書き込みモード - ファイルを開き、ファイル ヘッダーから読み取りを開始します。ファイルがすでに存在する場合、ファイルの既存の内容はすべて削除されます。ファイルが存在しない場合、関数はファイルを作成します。
- x 慎重に書き込みます ファイルを書き込みモードで開き、ファイルの先頭から書き込みを開始します。ファイルがすでに存在する場合、ファイルは開かれず、 fopen() 関数は false を返し、PHP は警告を生成します。
- x 慎重に書き込みます ファイルを読み取り/書き込みモードで開き、ファイルの先頭から書き込みを開始します。ファイルがすでに存在する場合、ファイルは開かれず、 fopen() 関数は false を返し、PHP は警告を生成します。
- a 追加 追加モード - ファイルを開きます。ファイルにコンテンツが既にある場合は、ファイルの末尾から追加 (書き込み) されます。ファイルが存在しない場合、関数はファイル a 追加 追加モード - ファイルに既にコンテンツがある場合、ファイルの末尾から追加 (書き込み) が開始されます。ファイルが存在しない場合、関数はファイル
- を作成します。 b バイナリ バイナリ モード - 他のモードとの接続に使用されます。ファイル システムがバイナリ ファイルとテキスト ファイルを区別できる場合は、それを使用してもよいでしょう。最大限の可搬性を実現します。バイナリ モードがデフォルトのモードです。
- t テキストは他のモードと組み合わせて使用されます。このモードは、Windows システムでは単なるオプションです。
fopen()ファイルの読み取りが完了したことを確認します:
feof()毎回読み取り データ行を取得:
fgets()、fgetss()、fgetcsv() ファイル全体を読み取り:
readfile()、fpassthru()、および file()
- 最初の方法は readfile() です。 readfile($path); readfile() 関数を呼び出すと、ファイルが開き、ファイルの内容が標準出力に出力され、ファイルが閉じられます。
- 2 番目の方法は fpassthru() です。この関数を使用するには、まず fopen() を使用してファイルを開く必要があります。次に、ファイル ポインタをパラメータとして fpassthru() に渡し、ファイル ポインタが指すファイルの内容を標準出力に送信できるようにします。次に、ファイルを閉じます。読み取り操作が成功した場合、関数は true を返し、それ以外の場合は false を返します。
- ファイル全体を読み取る 3 番目の関数は file() です。これは readfile と同じです。ただし、結果は配列に送信されます。
- $filearray = file($path); 4 番目のオプションは、file_get_contents() 関数を使用することです。この関数は readfile() と同じですが、この関数はファイルの内容をブラウザにエコーするのではなく、文字列としてファイルの内容を返します。
fgetc()
while(!feof($fp)){ $char = fgetc($fp); if(!feof($fp)){ echo ($char == "\n "? "<br> ": $char); } }任意の長さの読み取り: f
read() 最後ファイルを読み取る方法は、fread() 関数を使用してファイルから任意の長さのバイトを読み取ることです。
ファイルが存在するかどうかを確認します:
file_exists()ファイル サイズを決定します:
filesize()ファイルを削除します:
unlink()(PHPにはdeleteという関数はありません)在文件中定位:rewind()、fseek()和ftell()
rewind()函数可以将指针复位到文件的开始。
ftell()函数可以以字节为单位报告文件指针当前在文件中的位置。
调用fseek()函数可以将文件指针fp从whence位置移动offset个字节。
rewind()函数等价于调用一个具有零偏移量的fseek()函数。
文件的锁定:
为了避免多个方法同时操作一个文件,可以使用文件锁定的方法。
文件锁定是通过flock()函数来实现的。
如果打算使用flock()函数,必须将其添加到所有使用文件的脚本中;否则,就没有任何意义。
flock()的操作值
- LOCK_SH 读操作锁定。这意味着文件可以共享,其他人可以读该文件
- LOCK_EX 写操作锁定。这是互斥的。该文件不能被共享。
- LOCK_UN 释放已有的锁定
- LOCK_NB 防止在请求加锁时发生阻塞
数据库管理系统
- RDBMS提供了比普通文件更快的数据访问。
- RDBMS可以很容易地查找并检索满足特定条件的数据集合。
- RDBMS具有内置的处理并发访问的机制。
- RDBMS可以随机访问数据。
- RDBNS具有内置的权限系统。
vieworders.php
<?php $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; ?> <title>Bob's Auto Parts - Customer Orders</title> <h1 id="Bob-s-Auto-Parts">Bob's Auto Parts</h1> <h2 id="Customer-Orders">Customer Orders</h2> <?php @$fp = fopen("$DOCUMENT_ROOT/orders/orders.txt", 'rb'); if(!$fp){ echo "<p><strong>No orders pending.Please try again later.</strong>"; exit; } while (!feof($fp)){ $order = fgets($fp,999); echo $order."<br>"; } ?>
proccessorder.php
<?php $tireqty = $_POST['$tireqty']; $oilqty = $_POST['$oilqty']; $sparkqty = $_POST['$sparkqty']; $address = $_POST['address']; $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; $date = date('H:i, jS F Y'); ?> <title>Bob's Auto Parts-Order Results</title> <h1 id="Bob-s-Auto-Parts">Bob's Auto Parts</h1> <h2 id="Order-Results">Order Results</h2> <?php echo "<p>Order processed at ".date('H:i, jS F Y').""; echo "<p>Your order is as follows: </p>"; $totalqty = 0; $totalqty = $tireqty + $oilqty + $sparkqty; echo "Items ordered: ".$totalqty."<br>"; if($totalqty == 0){ echo "You did not order anything on the previous page!<br>"; }else{ if($tireqty > 0){ echo $tireqty." tires<br>"; } if($oilqty > 0){ echo $oilqty." bottles of oil<br>"; } if($sparkqty > 0){ echo $sparkqty." spark plugs<br>"; } } $totalamount = 0.00; define("TIREPRICE", 100); define("OILPRICE", 10); define("SPARKPRICE", 4); $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; $totalamount=number_format($totalamount, 2, '.', ' '); echo "<p>Total of order is $.$totalamount.</p>"; echo "<p>Address to ship to is ".$address."</p>"; $outputstring = $date."\t".$tireqty." tires \t".$oilqty." oil\t" .$sparkqty." spark plugs\t\$".$totalamount."\t".$address."\n"; @ $fp= fopen("$DOCUMENT_ROOT/orders/orders.txt", 'ab'); flock($fp, LOCK_EX); if(!$fp){ echo "<p><strong>Your orde could not be processed at this time. Please try again later.</strong></p>"; exit; } fwrite($fp, $outputstring, strlen($outputstring)); flock($fp, LOCK_UN); fclose($fp); echo "<p>Order written.</p>"; ?>

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

WebStorm Mac版
便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
