検索

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() と同じですが、この関数はファイルの内容をブラウザにエコーするのではなく、文字列としてファイルの内容を返します。
1 文字の読み取り:
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>";
?>
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの現在のステータス:Web開発動向を見てくださいPHPの現在のステータス:Web開発動向を見てくださいApr 13, 2025 am 12:20 AM

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

PHP対その他の言語:比較PHP対その他の言語:比較Apr 13, 2025 am 12:19 AM

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

PHP対Python:コア機能と機能PHP対Python:コア機能と機能Apr 13, 2025 am 12:16 AM

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

PHP:Web開発の重要な言語PHP:Web開発の重要な言語Apr 13, 2025 am 12:08 AM

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

PHP:多くのウェブサイトの基礎PHP:多くのウェブサイトの基礎Apr 13, 2025 am 12:07 AM

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

誇大広告を超えて:今日のPHPの役割の評価誇大広告を超えて:今日のPHPの役割の評価Apr 12, 2025 am 12:17 AM

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

PHPの弱い参照は何ですか、そしていつ有用ですか?PHPの弱い参照は何ですか、そしていつ有用ですか?Apr 12, 2025 am 12:13 AM

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

PHPで__invoke Magicメソッドを説明してください。PHPで__invoke Magicメソッドを説明してください。Apr 12, 2025 am 12:07 AM

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

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター