PHP 上級

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-21 09:11:04
オリジナル
1221 人が閲覧しました

PHP の強みは、まずその多数の組み込み関数ライブラリにあります。これにより、初心者は新しいライブラリをインストールしたり、基礎となる詳細を気にしたりすることなく、多くの複雑なタスクを実行できます。これは、Perl などの他の人気のあるプログラムの場合とまったく同じです。クライアント言語にはそれがありません。このチュートリアルの制限により、MySQL データベースに関連する一部の関数のみを学習しました (実際には、この種の関数であっても、すべてを学習したわけではありません)。この最後のセクションでは、少し範囲を広げて、データベース主導の Web サイトの構築に役立つ他の PHP 機能を見ていきます。
最初に PHP の include 関数を学びます。この関数を使用すると、同じ PHP コードセグメントを多くのページで再利用できます。また、この機能を使用して Web サイトのセキュリティを向上させる方法についても説明しました。
PHP は一般的に非常に高速で効率的ですが、サーバーの実行時間と作業負荷が増加します。トラフィックの多いサイトでは、この負担が許容できないレベルに達する可能性があります。しかし、それはサイトのデータベース主導の性質を放棄する必要があるという意味ではありません。 PHP を使用して、サーバーに過剰な負荷をかけずにバックグラウンドで半動的ページを作成する方法を見ていきます。
フォーラムがファイルのアップロードを受け入れるために タグをどのように使用しているかについてよく質問されます。また、この機能を PHP で実装する方法と、それをデータベース主導のサイトに効果的に組み込む方法についても説明します。
最後に、PHP には、動的に生成されたコンテンツを電子メール情報として簡単かつ便利に送信できる非常に強力な機能もあります。 PHP を使用して訪問者がサイトのコンテンツを友人に送信できるようにしたい場合でも、単にユーザーが忘れたパスワードを取得する方法を提供したい場合でも、PHP の電子メール機能はこれをうまく実行できます。
PHP のサーバーサイド インクルード
インターネットにしばらく取り組んでいる場合は、サーバーサイド インクルード (SSI) という用語に遭遇したことがあるかもしれません。そうでない場合は、次のサイトで Matt Mickiewicz のミニガイドを確認してください。主題。
基本的に、SSI を使用すると、Web サーバーに保存されているファイルの内容を別のファイルに挿入できます。最も一般的なアプリケーションは、Web サイトの共通デザイン部分を小さな HTML ファイルに書き込むことです。その中に、このファイルを含めることができます。ウェブページ。この小さなファイルに変更を加えると、それを含むすべてのファイルが直ちに影響を受けます。 PHP スクリプトと同様に、要求されたページをブラウザに送信する前に Web サーバーがすべての作業を実行するため、Web ブラウザはそれについて何も知る必要がありません。
PHP にも同様の機能を提供する関数があります。ただし、組み込まれるファイルには、正式な HTML やその他の静的コンテンツに加えて、スクリプトも含まれる場合があります。次の例を見てみましょう:



echo( "

ソイレントグリーンは人々から作られています! ");

?>


上記のファイルでは、include-me.inc に簡単な PHP コードが含まれています。このファイルのファイル名は .php ではなく .inc で終わることに注意してください。これは、このファイルが、一般的な Web サーバーが PHP スクリプトとみなすものとは異なることを意味します。これにより、ファイルが .php ファイルに挿入された場合にのみ実行されるようになり、PHP Web ページと PHP インクルード ファイルを区別するのにも役立ちます。
次のファイルも必要です:

が含まれます; <br><BODY> <br><?php <br/>?> <br></HTML>以前に使用した PHP スクリプトも同様で、その拡張子は .php 拡張子 (サーバーで必要な場合は .php3) です。 include 関数の呼び出しに注意してください。挿入したいファイル名 (include-me.inc) を指定すると、PHP はこのファイルを取得して、インクルードの代わりに現在のファイルに挿入しようとします。両方のファイルを Web サーバーにアップロードし (Web サーバーで作業している場合は、Web サーバーのドキュメント フォルダーにコピーし)、ブラウザで testinclude.php を読み込みます。予想どおり、挿入したファイルに関する情報を含む Web ページが表示されます。 <br>この例が機能しない場合は、php.ini ファイルで include_path オプションを構成する必要がある場合があります。お気に入りのテキスト エディタでファイルを開き、include_path で始まる行を見つけます (通常はファイルの途中にあります)。あなたがよく知っているシステム PATH 環境変数と同じように、これには PHP がインクルードするファイルを検索するディレクトリのリストが含まれています。 「.」(現在のディレクトリ)を含める必要があります。 <br>サーバーのオペレーティング システムが Windows か UNIX かに応じて、引用符を使用するかどうかを決定する必要がある場合があります: <br>UNIX の場合: <br>include_path=.:/another/directory <br><br>Windows の場合: <br>include_path=".;c:anotherdirectory" <br><br>挿入されたファイルを使用してセキュリティを向上させる<br>PHP スクリプトには、ユーザー名、パスワード、その他の望ましくないものが含まれる場合があります機密情報を公開すること。 mysql_connect 関数を使用したことがあるかもしれません。この関数では、データベースにアクセスする必要がある PHP スクリプトに MySQL のユーザー名とパスワードを入力する必要があります。ユーザー名とパスワードが PHP のみで使用できるように MySQL をセットアップするだけで、ハッカーによる悪用を避けることができます (第 8 章で学んだように、ユーザー テーブルのホスト フィールドを設定することによって) が、さらに他の設定が必要になる場合があります。ユーザー名とパスワードを便利に保護します。 <br> 「でも、ちょっと待ってください。PHP はサーバーによって処理されるので、誰も私のパスワードを見ることはできませんよね?」 そうです。しかし、サーバーの PHP 解析へのアクセスが偶発的な理由で停止する可能性がある状況を考慮したことがありますか。これは、善意の同僚によるソフトウェアの設定ミスが原因である可能性があります。または、他の要因が原因である可能性があります。これが発生した場合、PHP ページはプレーン テキスト ファイルとして処理されるため、すべての PHP コード (ユーザーのコードを含む)パスワード)を完全公開します! <br>このようなセキュリティ ホールを防ぐには、機密情報を含むコードを挿入ファイルに配置し、それを Web サービスのディレクトリ構造の一部ではないディレクトリに配置します。このディレクトリを PHP の include_path (php.ini に追加) に追加すると、Web サーバーは Web サーバーとして扱わないため、内部のファイルの安全性を心配することなく、PHP の include 関数で使用されるディレクトリを指定できます。 .ページを表示します。 <br>たとえば、Web サーバーがすべての Web ページが /home/httpd/ とそのサブディレクトリに存在する必要があると定義している場合、インクルード ファイルを保持するために /home/phplib/ というディレクトリを作成できます。このディレクトリを include_path に追加すれば準備完了です。次の例は、データベース接続コードをインクルード ファイルに配置する方法を示しています。 <br><!-- dbConnect.inc (/home/phplib/ 内) --> ", <br>"root", "rootpassword"); <br>?> <br>そして、このインクルード ファイルを使用するファイル: <br><!-- dbSample.php (in /home/httpd/) --> <br><? php <br/>// MySQL に接続します <br/>include("dbConnect.inc"); <br/>mysql_select_db("myDatabase",$cnx); ご覧のとおり、サーバーの PHP が動作しなくなった場合、公開されたのは、含まれている関数の呼び出しでした。ユーザー名とパスワードは dbConnect.inc に安全に保存され、Web サイトからこのファイルに直接アクセスすることはできません。 <br/>半動的ページ <br/> 成功している (または近々成功する) Web サイトの所有者として、Web サイトへのアクセス数がますます増えることを望んでいることは間違いありません。残念ながら、特にサイトが主に動的に生成されたデータベース主導のページで構成されている場合、Web サーバー管理者が懸念するのはトラフィックの多さです。このようなページは、従来の HTML ファイルを処理する場合に比べて、Web サービス ソフトウェアを実行しているコンピュータに大きな負担を与えます。各ページ要求は、コンピューター上で小さなプログラムを実行するのと同等であるためです。 <br/>データベース主導型サイトの一部のページでは、データベースから関連データをリアルタイムで厳密に呼び出す必要がありますが、ほとんどのページの要件はそれほど厳密ではありません。たとえば、Web サイトのホームページの場合、サイトが最近行った更新内容を訪問者に簡単に紹介するのが一般的な状況です。しかし、そのような更新はどれくらいの頻度で行われるのでしょうか?一日一回?それとも週に1回ですか?そして、サイト訪問者にとって、これらの更新情報をタイムリーに知ることはどれほど価値があるのでしょうか?おそらく、サイト上のこの種の変更に対する応答に多少の遅れが生じても、それほど問題にはならないでしょう。 <br/>トラフィックの多い動的ページを「半動的」ページ、つまり、コンテンツを一定の間隔で「更新」して動的に再生成できる静的ページに変換することで、Web サーバーのデータベース処理を大幅に軽減できます。 driver ページのワークロード。 <br/>たとえば、Web サイトの新しいコンテンツの概要を提供する、index.php というホームページがあります。サーバー ログを確認すると、これがサイト内で最もアクセス数の多いページの 1 つであることがわかります。前の説明から、リクエストごとにこのページを動的に生成する必要がないことがわかったはずです。サイトを動的に保つために、新しいコンテンツがサイトに追加されるたびにこのページを更新するだけです。 PHP プログラムを使用すると、動的出力ページの静的な「イメージ」を生成できます。このイメージに、index.html という名前を付けて、元の動的ページを置き換えることができます。 <br/>ファイルの読み取り、書き込み、変更について何かを学ぶ必要があります。 PHP はこれらのジョブを非常にうまく実行できますが、必要な関数をこれまで見たことがありません: <br/>fopen <br/>読み取りおよび書き込み操作のためにファイルを開きます。このファイルは、サーバーのハード ドライブに保存することも、URL 経由でロードすることもできます。 <br/>fclose <br/><br/> ファイルの読み取りと書き込みが行われないことを PHP に通知し、他のプログラムまたはスクリプトで使用できるようにそのファイルを解放します。 <br/>fread <br/><br/>ファイルからデータを PHP 変数に読み取ります。読み取る情報の量 (つまり、文字数またはバイト数) を指定できます。 <br/>fwrite <br/><br/>PHP 変数からファイルにデータを書き込みます。 <br/>コピー <br/><br/> ファイルのコピー操作を実行します。 <br/>リンクを解除 <br/><br/>ハードドライブからファイルを削除します。 <br/>分かりますか?まだお持ちでない場合でも、ご心配なく。後ほど詳しく説明します。 <br/>generateindex.phpという名前のファイルを作成します。これは、Web ブラウザがindex.php (ホームページの動的バージョン) からコンテンツを読み取り、それを静的テキストの形式でindex.html に書き込むことをシミュレートするために使用されます。このプロセス中に問題が発生した場合、元のindex.htmlの「正常な」コピーの破壊を避ける必要があるため、スクリプトは最初に新しい静的バージョンを一時ファイル(tempindex.html)に書き込みます。プロセス中に問題が発生しなければ、を使用して、index.html を上書きします。 <br/>以下は、generateindex.php のコードです。このプログラムをスムーズに理解できるように、十分な注釈が追加されています。 <br/><?php <br/>//使用するファイル <br/>$srcurl = "http://localhost/index.html"; <br/>$targetfilename = "index.html"; &lt&lt; gt; ;?php echo("$targetfilename"); ?>...</P> <br><?php <br>//最初に、最後の操作で残っている可能性のある一時ファイルを削除します。 <br>//このプロセスではエラーが発生する可能性があるため、エラーを防ぐために @ を使用します。 <br>@unlink($tempfilename); <br>//URL リクエストを通じて動的バージョンをロードします。 <br>//関連するコンテンツを受信する前に、Web サーバーは PHP を処理します <br>//(基本的に Web ブラウザをシミュレートしているため)、<br>//したがって、取得するのは静的な HTML ページです。 <br> //「r」は、この「ファイル」に対する読み取り操作のみが必要であることを示します。 <br>$dynpage = fopen($srcurl, 'r'); <br>//エラー処理 <br>if (!$dynpage) { <br>echo("<P>$srcurl を読み込めません。静的ページ ". <br>" 更新が中止されました! </P>"); <br>exit(); <br>} <br>//この URL の内容を PHP 変数に読み込みます。 <br>//1MB のデータを読み取ることを指定します (このデータ量を超えると、通常、エラーが発生したことを意味します)。 <br>$htmldata = fread($dynpage, 1024*1024); <br>//作業が終了したら、ソース「ファイル」への接続を閉じます。 <br>fclose($dynpage); <br>//書き込み用に一時ファイルを開きます ('w' の使用法に注意してください) <br> $tempfile = fopen($tempfilename, 'w');エラー処理 <br>if (!$tempfile) { <br>echo("<P>書き込み用の一時ファイル ".<br>"($tempfilename) を開けません。静的ページ ".<br>"更新が中止されました!</P> ") ; <br>exit(); <br>} <br>//静的ページのデータを一時ファイルに書き込みます <br>fwrite($tempfile, $htmldata); 書き込みが完了したら、一時ファイルを閉じます。 <br>fclose($tempfile); <br>//ここに到達すると、一時ファイルが正常に書き込まれているはずです。<br>//これで、それを使用して元の静的ページを上書きできます。 <br>$ok = copy($tempfilename, $targetfilename); <br>//最後にこの一時ファイルを削除します。 <br>unlink($tempfilename); <br>> 静的ページが正常に更新されました!</P> <br></HTML> <br><br><br>たくさんのコメントを含めたからです。これらのコメントを削除してください。このコードは実際には非常に単純であることがわかります。 <br>これで、generateindex.php を実行する (つまり、ブラウザーを通じてこのページをリクエストする) たびに、新しく更新された Index.html が Index.php から生成されます。 index.php とgenerateindex.php をアクセス制限されたディレクトリに移動すると、サイト管理者のみがホームページを更新できるようになります。このスクリプトを拡張すると、サイト上のすべての半動的ページを生成でき、コンテンツ管理システムに「ホームページの更新」リンクを追加することもできます。 <br>ホームページを自動的に更新したい場合は、generateindex.php を定期的に (たとえば、1 時間ごとに) 実行するようにサーバーを設定するだけです。新しい Windows 9x では、タスク マネージャー (古いバージョンの場合はパッチ パックを使用する必要があります) を使用して、php.exe を 1 時間ごとに自動的に実行できます。次の行を含む、generateindex.bat という名前のバッチ ファイルを作成するだけです。 <br>C:PHPphp.exe C:WWWgenerateindex.php <br><br> 必要に応じて、パスとファイル名を調整し、generateindex.bat を 1 時間ごとに実行するようにタスク マネージャーを設定します (毎日決まった時間に実行するには 24 を設定する必要があります) )。 <br> Linux (または他の UNIX ベースのプラットフォーム) では、cron を使用できます。これは、さまざまな UNIX システムでタスクと実行時間を定義し、同様の作業を完了するために使用できるプログラムです。 cron についてわからない場合は、よく知っている Linux の専門家に質問するか、よく知っている Linux Web サイトを確認してください。 <br>タスクをセットアップするための cron の使用方法は、Windows で以前に説明したものと非常によく似ています。ただし、スタンドアロン バージョンの PHP が必要です。これは、第 1 章でコンパイルされた Apache のインポート可能な PHP モジュールを参照しません。 Apache モジュールのコンパイルに使用したのと同じパッケージとは別にコンパイルする必要があります。ヘルプが必要な場合は、ソフトウェア パッケージで提供される手順を参照するか、公式 PHP Web サイトを確認してください。 <br>経験豊富な cron ユーザーの場合、crontab ファイルに次の行を追加するだけです: <br>0 0-23 * * * php /path/to/generateindex.php > /dev/null <br><br>ファイルのアップロードの処理<br>これまでのところ、このチュートリアルのデータベース主導型サイトの例はすべてテキスト データを扱っています。ジョーク、記事、著者...これらはすべてテキスト文字列で完全に表現できます。しかし、オンライン デジタル ギャラリーを運営していて、デジタル カメラで撮影した写真をアップロードできるようにする必要がある場合は、訪問者がサイトに写真をアップロードできるようにする必要があり、それを処理する必要があります。 <br>基本的なことから始めましょう。ユーザーがファイルをアップロードするための HTML フォームを作成します。 HTML では、これは <INPUT TYPE=FILE> タグを使用するのと同じくらい簡単です。ただし、デフォルトでは、ユーザーが選択したファイル名のみが送信されます。ファイル自体をフォーム データ経由で送信するには、<FORM> タグに ENCTYPE="multipart/form-data" を追加する必要があります: <br><FORM ACTION="fileupload.php" METHOD=POST <br/>ENCTYPE="multipart/ form-data"> <br><P>アップロードするファイルを選択してください: <br><INPUT TYPE=FILE NAME="uploadedfile"></P> <br><P><INPUT TYPE=SUBMIT NAME="submit " VALUE ="送信"></P> <br></FORM> <br><br><br> ご覧のとおり、PHP スクリプト (fileupload.php) は、前のフォームによって送信されたデータを処理します。ご想像のとおり、$uploadedfile という名前の PHP 変数 (<INPUT> フラグの NAME 属性によって識別される) が自動的に作成されます。ただし、$uploadedfile に保存されるのは、アップロードされたファイルの内容ではなく、Web サーバーのハードディスクに保存されているファイルのファイル名です。このファイルは、TEMP 環境変数で指定されたディレクトリに保存されます。 、ほとんどの Windows 9x システムでは、このディレクトリは C:WindowsTEMP になります)。このファイルは、フォームの送信を処理するために使用される PHP スクリプトが実行されているときにのみ存在するため、他の目的 (Web サイトで表示するために保存するなど) に使用したい場合は、前述のコピー機能を使用する必要があります。先ほどの「別の場所にコピーを作成する」。 <br> $uploadedfile に加えて、他の 3 つの変数も同時に作成されます。 $uploadedfile_name には送信前のファイル名が含まれます (送信されたファイルは phpx というファイル名で TEMP ディレクトリに保存されます。x は数字です)。$uploadedfile_size はファイルのサイズ (バイト単位で表現) を指定し、$uploadedfile_type はファイルのサイズを指定します。 MIME タイプ (text/plain、image/gif など)。 「uploadedfile」は送信されたファイルの INPUT フラグ内の名前にすぎず、実際のファイル名は上記の変数に格納されることに注意してください。 <br>これらの変数に基づいて、アップロードされたファイルを受け入れるかどうかを決定できます。たとえば、私たちのギャラリーでは、JPEG または GIF ファイルのみに興味があります。これらのファイルの MIME タイプは image/pjpeg または image/gif である必要があるため、アップロードされたファイルを確認するコードはおおよそ次のようになります: <br>if ("image/pjpeg" == $uploadedfile_type <br>or "image/gif" == $uploadedfile_type ) { <br>// ファイルを処理します... <br>} else { <br>echo("<P>JPEG または GIF 画像ファイルを送信してください。 ") <br>} <br><br><br>大きすぎるファイルを拒否します ($uploadedfile_size 変数を確認することで) が、一般的にこれは良い考えではありません。この変数を取得する前に、このファイルはアップロードされ、TEMP ディレクトリに保存されています。これは、ディスク容量または帯域幅の理由でファイルのアップロードを拒否しようとして、実際には大きなファイルが (すぐに削除されても) アップロードされてしまう場合に問題になる可能性があります。 <br>より良い方法は、受け入れられるファイル サイズの上限を事前に PHP に伝えることです。方法は 2 つあります。 1 つ目は、php.ini ファイルの Upload_max_filesize 設定を調整することです。デフォルト値は 2MB なので、それより大きなファイルを受け入れたい場合は、この値をすぐに変更する必要があります。 <br>2 番目の方法は、フォームに暗黙的な INPUT フィールドを含めることです。その名前は MAX_FILE_SIZE で、受け入れ可能な最大ファイル サイズを定義できます。セキュリティ上の理由から、この値は php.ini ファイルの Upload_max_filesize 設定を超えることはできませんが、これにより、さまざまなページでアップロード ファイル サイズの上限を定義することができます。たとえば、次のフォームでは、最大 1K バイト (1024 バイト) までのファイルのみをアップロードできます。 <br><FORM ACTION="fileupload.php" METHOD=POST <br/>ENCTYPE="multipart/form-data"> P>アップロードするファイルを選択: <br><INPUT TYPE=FILE NAME="uploadedfile"></P><INPUT TYPE=SUBMIT NAME="submit" VALUE="Submit"< ;/P> <br><INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=1024> <br></FORM> <br><br><br> 前述したように、アップロードしたファイルを別のディレクトリにコピーする必要がありますそしてそれを保存します。 $uploadedfile_name からアップロードされた各ファイルのファイル名を取得する場合、同じ名前の 2 つのファイルがアップロードされないという保証はできません。この場合、元の名前を使用してファイルを保存すると、新しくアップロードされたファイルが元のアップロードされたファイルを上書きします。 <br>このため、アップロードするすべてのファイルに一意のファイル名を指定する方法を採用するとよいでしょう。システム時刻 (PHP の time 関数を使用して取得できます) を使用すると、1970 年 1 月 1 日からの秒数を表す名前を簡単に取得できます。しかし、2 つのファイルが同じ秒に同時にアップロードされたらどうなるでしょうか?この問題を防ぐために、ファイル名にクライアントの IP アドレス (PHP によって $REMOTE_HOST に自動的に保存される) も使用します。同じ秒間に同じ IP アドレスから 2 つのファイルを受信する可能性は低いため、この解決策は実行可能です。 <br>// ファイル拡張子を選択します <br>if ( "image/pjpeg" == $uploadedfile_type ) <br>$extension = ".jpg"; <br>else <br>$extension = ".gif"; <br>// 完全なパス/ファイル名 <br>$ filename = "C:Uploads" . time() . <br>$REMOTE_HOST . $extension; <br>// ファイルをコピーします <br>if (copy($uploadedfile, $filename)) { <br>echo("<P> $filename."); <br>} else { <br>echo("<P>$filename としてファイルを保存できませんでした!"); <br>} <br><br><br>Windows の場合は、double-reverse を使用する必要があることに注意してください。バックスラッシュは PHP テキスト文字列内の特殊文字を表すために使用されるため、パス Slash() です。 UNIX では、通常どおりスラッシュ (/) を使用します。 <br>アップロードされたファイルをデータベースに保存する <br>訪問者が JPEG および GIF 画像をアップロードしてサーバーに保存できるシステムをセットアップしましたが、このチュートリアルで示されているデータベース ドライバーを使用しないのはなぜでしょうか?私たちのシステムが現状のままだと、誰かが送信された画像をフォルダーから収集し、手動で Web サイトに追加する必要があります。第 7 章を​​振り返ると、サイト訪問者がジョークを送信してモデレータが承認するデータベースに保存されるシステムを開発しましたが、これがより良いアプローチであることがわかりました。 <br>MySQL には、バイナリ データの保存に使用できるいくつかの列タイプがあります。データベース用語では、これらの列タイプは BLOB (バイナリ ラージ オブジェクト) を格納できます。ただし、大きなファイルをリレーショナル データベースに保存するのは得策ではありません。すべてのデータを 1 か所に置くと便利ですが、ファイルが大きいとデータベースも大きくなり、データベースが大きいとパフォーマンスが低下してバックアップ ファイルも大きくなります。 <br> 多くの場合、最良のオプションはファイル名をデータベースに保存することです。データからレコードを削除するときは、必ず対応するファイルを削除してください。 <br>PHP での電子メール <br>電子メールはインターネットに強い影響を与えます。ユーザーに毎週の「新着情報」を提供する場合でも、ユーザーが紛失したパスワードを取得する方法を検討する場合でも、電子メールを使用することになります。 PHP で電子メールを使用するのは非常に簡単で、単に mail 関数を呼び出してメッセージを送信するだけです。 <br>メール機能を使用して電子メールを送信する前に、まず PHP の電子メール関連のオプションを設定する必要があります。 Windows での php.ini ファイル内の関連する行は次のとおりです: <br>[mail function] <br>SMTP = localhost ; win32 でのみ有効 <br> sendmail_path = ; win32 でのみ有効効果的です... <br><br><br> Windows を使用しているか UNIX を使用しているかに応じて、PHP は SMTP サーバーまたはローカルの sendmail システムを介して電子メールを送信します。これらの設定はこのチュートリアルの範囲を超えており、両方に関する多くの情報が他の場所で見つかります。ただし、Windows を実行している場合は、ISP が SMTP サーバーを提供している可能性があります。これは、メッセージの送信に使用する電子メール プログラムを設定するサーバーです。 SMTP をそのサーバーのホスト名または IP アドレスに設定します。 <br>sendmail_from は、メール送信時のデフォルトのメール アドレスを設定します。このサーバーを管理している場合は、ここに電子メール アドレスを入力できます。 <br>最後に、sendmail_path は UNIX ではコメントアウトされません (つまり、この行の前のセミコロンを削除します)。これをシステム上の sendmail プログラムのパスとファイル名に設定する必要があります。 Linux では、これは通常 /usr/sbin/sendmail を指します。 <br>これらの設定を完了した後、Web サーバーを再起動すると、PHP ですべての電子メール機能が使えるようになります。 PHP で電子メールを送信するのは非常に簡単になりました: <br>mail("to-address@somewhere.com", "Message Subject", "This is the body of the message."); <br><br><br> 複数の受信者に送信するには、次の手順を実行するだけです。複数のアドレスをカンマで区切る場合: <br>mail("to1@mail.net, to2@mail.net, ...", "Message Subject", "Message body"); ヘッダーに From のアドレスを指定します。または Reply-To: も非常に簡単です。これを改行で区切った 4 番目のパラメータとして指定します: <br>mail("to@mail.net", "Message Subject", "Message body", "From: webmaster@host.com Reply-to:admin @host.com"); <br><br><br> データベースと組み合わせると、メーリング リストの管理が非常に簡単になります。データベースからアドレスリストを取得し、メール機能を使用してメッセージを送信するだけです。メッセージのパーソナライズも非常に簡単です。以下の例を参照してください: <br>// フォームで指定された $username に基づいて、データベースから $email と $password を取得します。 <br>mail($email, "Your Password", <br>"こんにちは! <br><br>あなただけです。当社 Web サイトのフォームに記入し、<br>パスワードを紛失したことをお知らせください。<br>ご要望に応じて、<br>ユーザー名: $username <br>パスワード: $password <br>この情報を安全な場所に記録してください。次回の <br> pingpongballs.com へのアクセスに備えてください! <br> - Webmaster. <br>"); <br><br><br> UNIX で実行していて、メールを送信するローカルの sendmail システムがない場合は、これを使用してください。関係ない。 PHP には完全な TCP/IP ネットワーク機能があり、必要に応じて SMTP サーバーに接続して情報を送信できます。同様に、送信メッセージに添付ファイルを含める必要がある場合、PHP でこの関数を実装することもできます。 <br>残念ながら、組み込みのメール関数はこれらの機能をサポートしていません。必要な場合は、独自のメール関数を最初から作成する必要があります。 WROX Press の「Professional PHP Programming」がこれを実現しており、完全なコードはこの本の第 17 章にあります。これは私が強くお勧めする良い本ですが (私のレビューを参照してください)、この機能を入手したいだけであれば、この本を購入する必要はありません。ソース コードは WROX Web サイトから無料でダウンロードできます。 <br>これら 2 つの小さな問題を除けば、PHP の組み込みメール機能は、Web ページから電子メール メッセージを送信するための非常に便利な機能を提供します。 <br> <br> <br> <br> <br> </p> <center> </center> <p style="width:100%;text-align:center;margin:10px 0"></p> </div> </div> <div style="display: flex;"> <div class="wzconBq" style="display: inline-flex;"> <span>関連ラベル:</span> <div class="wzcbqd"> <a onclick="hits_log(2,'www',this);" href-data="https://www.php.cn/ja/search?word=gt" target="_blank">gt</a> <a onclick="hits_log(2,'www',this);" href-data="https://www.php.cn/ja/search?word=lt" target="_blank">lt</a> <a onclick="hits_log(2,'www',this);" href-data="https://www.php.cn/ja/search?word=php" target="_blank">php</a> <a onclick="hits_log(2,'www',this);" href-data="https://www.php.cn/ja/search?word=quot" target="_blank">quot</a> </div> </div> <!-- <div style="display: inline-flex;float: right; color:#333333;">ソース:php.cn</div> --> </div> <div class="wzconOtherwz"> <a href="https://www.php.cn/ja/faq/240638.html" title="PHP を使用してブラウザのキャッシュを制御する"> <span>前の記事:PHP を使用してブラウザのキャッシュを制御する</span> </a> <a href="https://www.php.cn/ja/faq/240640.html" title="Zend Studio 3.0 試用ノート"> <span>次の記事:Zend Studio 3.0 試用ノート</span> </a> </div> <div class="wzconShengming"> <div class="bzsmdiv">このウェブサイトの声明</div> <div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div> </div> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="2507867629"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class="wzconZzwz"> <div class="wzconZzwztitle">著者別の最新記事</div> <ul> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796639331.html">NullPointerException とは何ですか?どのように修正すればよいですか?</a> </div> <div>2024-10-22 09:46:29</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796629482.html">初心者からプログラマーへ: 旅は C の基礎から始まります</a> </div> <div>2024-10-13 13:53:41</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796628545.html">PHP による Web 開発のロックを解除する: 初心者ガイド</a> </div> <div>2024-10-12 12:15:51</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796627928.html">C の謎を解く: 新人プログラマーのための明確でシンプルな道</a> </div> <div>2024-10-11 22:47:31</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796627806.html">コーディングの可能性を解き放つ: まったくの初心者のための C プログラミング</a> </div> <div>2024-10-11 19:36:51</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796627670.html">内なるプログラマーを解き放つ: まったくの初心者のための C</a> </div> <div>2024-10-11 15:50:41</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796627643.html">C で生活を自動化する: 初心者向けのスクリプトとツール</a> </div> <div>2024-10-11 15:07:41</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796627620.html">PHP を簡単に: Web 開発の最初のステップ</a> </div> <div>2024-10-11 14:21:21</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796627574.html">Python で何でも構築: 創造性を解き放つための初心者ガイド</a> </div> <div>2024-10-11 12:59:11</div> </li> <li> <div class="wzczzwzli"> <span class="layui-badge-dots"></span> <a target="_blank" href="https://www.php.cn/ja/faq/1796627539.html">コーディングの鍵: 初心者のための Python の力を解き放つ</a> </div> <div>2024-10-11 12:17:31</div> </li> </ul> </div> <div class="wzconZzwz"> <div class="wzconZzwztitle">最新の問題</div> <div class="wdsyContent"> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ja/wenda/.html" target="_blank" title="angular.js - json{B:["Beijing", "Baoding", "Baotou"], D:["Dalian", "Dandong"] の angular js で 2 つの文字 "B" と "D" を取得する方法}" class="wdcdcTitle">angular.js - json{B:["Beijing", "Baoding", "Baotou"], D:["Dalian", "Dandong"] の angular js で 2 つの文字 "B" と "D" を取得する方法}</a> <a href="https://www.php.cn/ja/wenda/.html" class="wdcdcCons"></a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> から 1970-01-01 08:00:00</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>0</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>0</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ja/wenda/.html" target="_blank" title="$("#content .abc") と $("#content").find(".abc") ではどちらの方が効率的ですか?" class="wdcdcTitle">$("#content .abc") と $("#content").find(".abc") ではどちらの方が効率的ですか?</a> <a href="https://www.php.cn/ja/wenda/.html" class="wdcdcCons"></a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> から 1970-01-01 08:00:00</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>0</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>0</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ja/wenda/.html" target="_blank" title="magento2 要素 "referenceContainer": 属性 "name"; は必須ですが欠落しています" class="wdcdcTitle">magento2 要素 "referenceContainer": 属性 "name"; は必須ですが欠落しています</a> <a href="https://www.php.cn/ja/wenda/.html" class="wdcdcCons"></a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> から 1970-01-01 08:00:00</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>0</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>0</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ja/wenda/.html" target="_blank" title="証明書の有効期限が切れています "error_code":"2034" エラーは何ですか?" class="wdcdcTitle">証明書の有効期限が切れています "error_code":"2034" エラーは何ですか?</a> <a href="https://www.php.cn/ja/wenda/.html" class="wdcdcCons"></a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> から 1970-01-01 08:00:00</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>0</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>0</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> <div class="wdsyConDiv flexRow wdsyConDiv1"> <div class="wdcdContent flexColumn"> <a href="https://www.php.cn/ja/wenda/.html" target="_blank" title="javascript - (_a = [""], _a.raw = [""],....); js における小さな括弧は何を意味しますか?" class="wdcdcTitle">javascript - (_a = [""], _a.raw = [""],....); js における小さな括弧は何を意味しますか?</a> <a href="https://www.php.cn/ja/wenda/.html" class="wdcdcCons"></a> <div class="wdcdcInfo flexRow"> <div class="wdcdcileft"> <span class="wdcdciSpan"> から 1970-01-01 08:00:00</span> </div> <div class="wdcdciright flexRow"> <div class="wdcdcirdz flexRow ira"> <b class="wdcdcirdzi"></b>0 </div> <div class="wdcdcirpl flexRow ira"><b class="wdcdcirpli"></b>0</div> <div class="wdcdcirwatch flexRow ira"><b class="wdcdcirwatchi"></b>0</div> </div> </div> </div> </div> <div class="wdsyConLine wdsyConLine2"></div> </div> </div> <div class="wzconZt" > <div class="wzczt-title"> <div>関連トピック</div> <a href="https://www.php.cn/ja/faq/zt" target="_blank">詳細> </a> </div> <div class="wzcttlist"> <ul> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/phpwjzmdk"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072214120868901.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="phpファイルの開き方" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/phpwjzmdk" class="title-a-spanl" title="phpファイルの開き方"><span>phpファイルの開き方</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/phpzmqcszys"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072214004499289.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="PHPで配列の最初のいくつかの要素を削除する方法" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/phpzmqcszys" class="title-a-spanl" title="PHPで配列の最初のいくつかの要素を削除する方法"><span>PHPで配列の最初のいくつかの要素を削除する方法</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/phpfxlsb"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072214003558557.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="PHPのデシリアライゼーションが失敗した場合の対処法" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/phpfxlsb" class="title-a-spanl" title="PHPのデシリアライゼーションが失敗した場合の対処法"><span>PHPのデシリアライゼーションが失敗した場合の対処法</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/phpljmssql"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072213560082376.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="PHPをmssqlデータベースに接続する方法" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/phpljmssql" class="title-a-spanl" title="PHPをmssqlデータベースに接続する方法"><span>PHPをmssqlデータベースに接続する方法</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/phpljmssqlsjk"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072213555538594.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="PHPをmssqlデータベースに接続する方法" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/phpljmssqlsjk" class="title-a-spanl" title="PHPをmssqlデータベースに接続する方法"><span>PHPをmssqlデータベースに接続する方法</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/htmlzmsc"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072213512540557.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="HTMLのアップロード方法" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/htmlzmsc" class="title-a-spanl" title="HTMLのアップロード方法"><span>HTMLのアップロード方法</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/phpcxlmzmjj"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072213494787127.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="PHPの文字化けを解決する方法" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/phpcxlmzmjj" class="title-a-spanl" title="PHPの文字化けを解決する方法"><span>PHPの文字化けを解決する方法</span> </a> </li> <li class="ul-li"> <a target="_blank" href="https://www.php.cn/ja/faq/phpwjzmzsjsdk"><img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/subject/202407/22/2024072213484482977.jpg?x-oss-process=image/resize,m_fill,h_145,w_220" alt="携帯電話でphpファイルを開く方法" /> </a> <a target="_blank" href="https://www.php.cn/ja/faq/phpwjzmzsjsdk" class="title-a-spanl" title="携帯電話でphpファイルを開く方法"><span>携帯電話でphpファイルを開く方法</span> </a> </li> </ul> </div> </div> </div> </div> <div class="phpwzright"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5902227090019525" data-ad-slot="3653428331" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class="wzrOne"> <div class="wzroTitle">人気のおすすめ</div> <div class="wzroList"> <ul> </ul> </div> </div> <script src="https://sw.php.cn/hezuo/cac1399ab368127f9b113b14eb3316d0.js" type="text/javascript"></script> <div class="wzrThree"> <div class="wzrthree-title"> <div>人気のチュートリアル</div> <a target="_blank" href="https://www.php.cn/ja/course.html">詳細> </a> </div> <div class="wzrthreelist swiper2"> <div class="wzrthreeTab swiper-wrapper"> <div class="check tabdiv swiper-slide" data-id="one">関連するチュートリアル <div></div></div> <div class="tabdiv swiper-slide" data-id="two">人気のおすすめ<div></div></div> <div class="tabdiv swiper-slide" data-id="three">最新のコース<div></div></div> </div> <ul class="one"> <li> <a target="_blank" href="https://www.php.cn/ja/course/812.html" title="最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)"/> </a> <div class="wzrthree-right"> <a target="_blank" title="最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)" href="https://www.php.cn/ja/course/812.html">最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)</a> <div class="wzrthreerb"> <div>1434357 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/74.html" title="PHP 入門チュートリアル 1: 1 週間で PHP を学ぶ" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/068/6253d1e28ef5c345.png" alt="PHP 入門チュートリアル 1: 1 週間で PHP を学ぶ"/> </a> <div class="wzrthree-right"> <a target="_blank" title="PHP 入門チュートリアル 1: 1 週間で PHP を学ぶ" href="https://www.php.cn/ja/course/74.html">PHP 入門チュートリアル 1: 1 週間で PHP を学ぶ</a> <div class="wzrthreerb"> <div>4290647 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="74"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/286.html" title="JAVA 初心者向けビデオチュートリアル" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 初心者向けビデオチュートリアル"/> </a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 初心者向けビデオチュートリアル" href="https://www.php.cn/ja/course/286.html">JAVA 初心者向けビデオチュートリアル</a> <div class="wzrthreerb"> <div>2636334 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/504.html" title="Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/068/62590a67ce3a6655.png" alt="Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル" href="https://www.php.cn/ja/course/504.html">Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル</a> <div class="wzrthreerb"> <div>514894 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="504"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/2.html" title="PHP ゼロベースの入門チュートリアル" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/068/6253de27bc161468.png" alt="PHP ゼロベースの入門チュートリアル"/> </a> <div class="wzrthree-right"> <a target="_blank" title="PHP ゼロベースの入門チュートリアル" href="https://www.php.cn/ja/course/2.html">PHP ゼロベースの入門チュートリアル</a> <div class="wzrthreerb"> <div>874251 <b class="kclbcollectb"></b></div> <div class="courseICollection" data-id="2"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> <ul class="two" style="display: none;"> <li> <a target="_blank" href="https://www.php.cn/ja/course/812.html" title="最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)"/> </a> <div class="wzrthree-right"> <a target="_blank" title="最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)" href="https://www.php.cn/ja/course/812.html">最新の ThinkPHP 5.1 ワールドプレミアビデオチュートリアル (PHP エキスパートになるための 60 日間のオンライン トレーニング コース)</a> <div class="wzrthreerb"> <div >1434357 回の学習</div> <div class="courseICollection" data-id="812"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/286.html" title="JAVA 初心者向けビデオチュートリアル" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/068/62590a2bacfd9379.png" alt="JAVA 初心者向けビデオチュートリアル"/> </a> <div class="wzrthree-right"> <a target="_blank" title="JAVA 初心者向けビデオチュートリアル" href="https://www.php.cn/ja/course/286.html">JAVA 初心者向けビデオチュートリアル</a> <div class="wzrthreerb"> <div >2636334 回の学習</div> <div class="courseICollection" data-id="286"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/504.html" title="Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/068/62590a67ce3a6655.png" alt="Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル" href="https://www.php.cn/ja/course/504.html">Little Turtle のゼロベースの Python 学習入門ビデオ チュートリアル</a> <div class="wzrthreerb"> <div >514894 回の学習</div> <div class="courseICollection" data-id="504"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/901.html" title="Web フロントエンド開発の簡単な紹介" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/067/64be28a53a4f6310.png" alt="Web フロントエンド開発の簡単な紹介"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Web フロントエンド開発の簡単な紹介" href="https://www.php.cn/ja/course/901.html">Web フロントエンド開発の簡単な紹介</a> <div class="wzrthreerb"> <div >216841 回の学習</div> <div class="courseICollection" data-id="901"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/234.html" title="PSビデオチュートリアルをゼロからマスターする" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/068/62611f57ed0d4840.jpg" alt="PSビデオチュートリアルをゼロからマスターする"/> </a> <div class="wzrthree-right"> <a target="_blank" title="PSビデオチュートリアルをゼロからマスターする" href="https://www.php.cn/ja/course/234.html">PSビデオチュートリアルをゼロからマスターする</a> <div class="wzrthreerb"> <div >914384 回の学習</div> <div class="courseICollection" data-id="234"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> <ul class="three" style="display: none;"> <li> <a target="_blank" href="https://www.php.cn/ja/course/1648.html" title="[Web フロントエンド] Node.js クイック スタート" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/067/662b5d34ba7c0227.png" alt="[Web フロントエンド] Node.js クイック スタート"/> </a> <div class="wzrthree-right"> <a target="_blank" title="[Web フロントエンド] Node.js クイック スタート" href="https://www.php.cn/ja/course/1648.html">[Web フロントエンド] Node.js クイック スタート</a> <div class="wzrthreerb"> <div >9237 回の学習</div> <div class="courseICollection" data-id="1648"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/1647.html" title="海外のWeb開発フルスタックコースの完全なコレクション" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/067/6628cc96e310c937.png" alt="海外のWeb開発フルスタックコースの完全なコレクション"/> </a> <div class="wzrthree-right"> <a target="_blank" title="海外のWeb開発フルスタックコースの完全なコレクション" href="https://www.php.cn/ja/course/1647.html">海外のWeb開発フルスタックコースの完全なコレクション</a> <div class="wzrthreerb"> <div >7468 回の学習</div> <div class="courseICollection" data-id="1647"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/1646.html" title="Go言語実践GraphQL" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/067/662221173504a436.png" alt="Go言語実践GraphQL"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Go言語実践GraphQL" href="https://www.php.cn/ja/course/1646.html">Go言語実践GraphQL</a> <div class="wzrthreerb"> <div >6307 回の学習</div> <div class="courseICollection" data-id="1646"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/1645.html" title="550W ファンマスターが JavaScript をゼロから段階的に学習します" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/067/662077e163124646.png" alt="550W ファンマスターが JavaScript をゼロから段階的に学習します"/> </a> <div class="wzrthree-right"> <a target="_blank" title="550W ファンマスターが JavaScript をゼロから段階的に学習します" href="https://www.php.cn/ja/course/1645.html">550W ファンマスターが JavaScript をゼロから段階的に学習します</a> <div class="wzrthreerb"> <div >805 回の学習</div> <div class="courseICollection" data-id="1645"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> <li> <a target="_blank" href="https://www.php.cn/ja/course/1644.html" title="Python マスター Mosh、基礎知識ゼロの初心者でも 6 時間で始められる" class="wzrthreelaimg"> <img class="lazy" src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/course/000/000/067/6616418ca80b8916.png" alt="Python マスター Mosh、基礎知識ゼロの初心者でも 6 時間で始められる"/> </a> <div class="wzrthree-right"> <a target="_blank" title="Python マスター Mosh、基礎知識ゼロの初心者でも 6 時間で始められる" href="https://www.php.cn/ja/course/1644.html">Python マスター Mosh、基礎知識ゼロの初心者でも 6 時間で始められる</a> <div class="wzrthreerb"> <div >31311 回の学習</div> <div class="courseICollection" data-id="1644"> <b class="nofollow small-nocollect"></b> </div> </div> </div> </li> </ul> </div> <script> var mySwiper = new Swiper('.swiper2', { autoplay: false,//可选选项,自动滑动 slidesPerView : 'auto', }) $('.wzrthreeTab>div').click(function(e){ $('.wzrthreeTab>div').removeClass('check') $(this).addClass('check') $('.wzrthreelist>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> <div class="wzrFour"> <div class="wzrfour-title"> <div>最新のダウンロード</div> <a href="https://www.php.cn/ja/xiazai">詳細> </a> </div> <script> $(document).ready(function(){ var sjyx_banSwiper = new Swiper(".sjyx_banSwiperwz",{ speed:1000, autoplay:{ delay:3500, disableOnInteraction: false, }, pagination:{ el:'.sjyx_banSwiperwz .swiper-pagination', clickable :false, }, loop:true }) }) </script> <div class="wzrfourList swiper3"> <div class="wzrfourlTab swiper-wrapper"> <div class="check swiper-slide" data-id="onef">ウェブエフェクト <div></div></div> <div class="swiper-slide" data-id="twof">公式サイト<div></div></div> <div class="swiper-slide" data-id="threef">サイト素材<div></div></div> <div class="swiper-slide" data-id="fourf">フロントエンドテンプレート<div></div></div> </div> <ul class="onef"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery エンタープライズ メッセージ フォームの連絡先コード" href="https://www.php.cn/ja/toolset/js-special-effects/8071">[フォームボタン] jQuery エンタープライズ メッセージ フォームの連絡先コード</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5 MP3 オルゴール再生効果" href="https://www.php.cn/ja/toolset/js-special-effects/8070">[プレイヤーの特殊効果] HTML5 MP3 オルゴール再生効果</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="HTML5 クールなパーティクル アニメーション ナビゲーション メニューの特殊効果" href="https://www.php.cn/ja/toolset/js-special-effects/8069">[メニューナビゲーション] HTML5 クールなパーティクル アニメーション ナビゲーション メニューの特殊効果</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="jQuery ビジュアル フォームのドラッグ アンド ドロップ編集コード" href="https://www.php.cn/ja/toolset/js-special-effects/8068">[フォームボタン] jQuery ビジュアル フォームのドラッグ アンド ドロップ編集コード</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="VUE.JS 模倣 Kugou 音楽プレーヤー コード" href="https://www.php.cn/ja/toolset/js-special-effects/8067">[プレイヤーの特殊効果] VUE.JS 模倣 Kugou 音楽プレーヤー コード</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="古典的な HTML5 プッシュ ボックス ゲーム" href="https://www.php.cn/ja/toolset/js-special-effects/8066">[html5特殊効果] 古典的な HTML5 プッシュ ボックス ゲーム</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="画像効果を追加または削減するための jQuery スクロール" href="https://www.php.cn/ja/toolset/js-special-effects/8065">[画像の特殊効果] 画像効果を追加または削減するための jQuery スクロール</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a target="_blank" title="CSS3 個人アルバム カバー ホバー ズーム効果" href="https://www.php.cn/ja/toolset/js-special-effects/8064">[フォトアルバム効果] CSS3 個人アルバム カバー ホバー ズーム効果</a> </div> </li> </ul> <ul class="twof" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8328" title="室内装飾クリーニングおよび修理サービス会社のウェブサイトのテンプレート" target="_blank">[フロントエンドテンプレート] 室内装飾クリーニングおよび修理サービス会社のウェブサイトのテンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8327" title="フレッシュカラーの個人履歴書ガイドページテンプレート" target="_blank">[フロントエンドテンプレート] フレッシュカラーの個人履歴書ガイドページテンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8326" title="デザイナーのクリエイティブな仕事の履歴書 Web テンプレート" target="_blank">[フロントエンドテンプレート] デザイナーのクリエイティブな仕事の履歴書 Web テンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8325" title="現代のエンジニアリング建設会社のウェブサイトのテンプレート" target="_blank">[フロントエンドテンプレート] 現代のエンジニアリング建設会社のウェブサイトのテンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8324" title="教育サービス機関向けのレスポンシブ HTML5 テンプレート" target="_blank">[フロントエンドテンプレート] 教育サービス機関向けのレスポンシブ HTML5 テンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8323" title="オンライン電子書籍ストア モールのウェブサイト テンプレート" target="_blank">[フロントエンドテンプレート] オンライン電子書籍ストア モールのウェブサイト テンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8322" title="IT テクノロジーがインターネット企業の Web サイト テンプレートを解決します" target="_blank">[フロントエンドテンプレート] IT テクノロジーがインターネット企業の Web サイト テンプレートを解決します</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8321" title="パープルスタイル外国為替取引サービスウェブサイトテンプレート" target="_blank">[フロントエンドテンプレート] パープルスタイル外国為替取引サービスウェブサイトテンプレート</a> </div> </li> </ul> <ul class="threef" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3078" target="_blank" title="かわいい夏の要素のベクター素材 (EPS+PNG)">[PNG素材] かわいい夏の要素のベクター素材 (EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3077" target="_blank" title="4 つの赤い 2023 卒業バッジ ベクター素材 (AI+EPS+PNG)">[PNG素材] 4 つの赤い 2023 卒業バッジ ベクター素材 (AI+EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3076" target="_blank" title="歌う鳥と花がいっぱいのカートデザイン春のバナーベクター素材(AI+EPS)">[バナー画像] 歌う鳥と花がいっぱいのカートデザイン春のバナーベクター素材(AI+EPS)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3075" target="_blank" title="金色の卒業帽ベクター素材(EPS+PNG)">[PNG素材] 金色の卒業帽ベクター素材(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3074" target="_blank" title="黒と白のスタイルの山アイコン ベクター素材 (EPS+PNG)">[PNG素材] 黒と白のスタイルの山アイコン ベクター素材 (EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3073" target="_blank" title="異なる色のマントと異なるポーズを持つスーパーヒーローのシルエットベクター素材(EPS+PNG)">[PNG素材] 異なる色のマントと異なるポーズを持つスーパーヒーローのシルエットベクター素材(EPS+PNG)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3072" target="_blank" title="フラット スタイルの植樹祭バナー ベクター素材 (AI+EPS)">[バナー画像] フラット スタイルの植樹祭バナー ベクター素材 (AI+EPS)</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-materials/3071" target="_blank" title="9つのコミックスタイルの爆発するチャットバブルベクター素材(EPS+PNG)">[PNG素材] 9つのコミックスタイルの爆発するチャットバブルベクター素材(EPS+PNG)</a> </div> </li> </ul> <ul class="fourf" style="display:none"> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8328" target="_blank" title="室内装飾クリーニングおよび修理サービス会社のウェブサイトのテンプレート">[フロントエンドテンプレート] 室内装飾クリーニングおよび修理サービス会社のウェブサイトのテンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8327" target="_blank" title="フレッシュカラーの個人履歴書ガイドページテンプレート">[フロントエンドテンプレート] フレッシュカラーの個人履歴書ガイドページテンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8326" target="_blank" title="デザイナーのクリエイティブな仕事の履歴書 Web テンプレート">[フロントエンドテンプレート] デザイナーのクリエイティブな仕事の履歴書 Web テンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8325" target="_blank" title="現代のエンジニアリング建設会社のウェブサイトのテンプレート">[フロントエンドテンプレート] 現代のエンジニアリング建設会社のウェブサイトのテンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8324" target="_blank" title="教育サービス機関向けのレスポンシブ HTML5 テンプレート">[フロントエンドテンプレート] 教育サービス機関向けのレスポンシブ HTML5 テンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8323" target="_blank" title="オンライン電子書籍ストア モールのウェブサイト テンプレート">[フロントエンドテンプレート] オンライン電子書籍ストア モールのウェブサイト テンプレート</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8322" target="_blank" title="IT テクノロジーがインターネット企業の Web サイト テンプレートを解決します">[フロントエンドテンプレート] IT テクノロジーがインターネット企業の Web サイト テンプレートを解決します</a> </div> </li> <li> <div class="wzrfourli"> <span class="layui-badge-dots wzrflr"></span> <a href="https://www.php.cn/ja/toolset/website-source-code/8321" target="_blank" title="パープルスタイル外国為替取引サービスウェブサイトテンプレート">[フロントエンドテンプレート] パープルスタイル外国為替取引サービスウェブサイトテンプレート</a> </div> </li> </ul> </div> <script> var mySwiper = new Swiper('.swiper3', { autoplay: false,//可选选项,自动滑动 slidesPerView : 'auto', }) $('.wzrfourlTab>div').click(function(e){ $('.wzrfourlTab>div').removeClass('check') $(this).addClass('check') $('.wzrfourList>ul').css('display','none') $('.'+e.currentTarget.dataset.id).show() }) </script> </div> </div> </div> <footer> <div class="footer"> <div class="footertop"> <img src="/static/imghw/logo.png" alt=""> <p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p> </div> <div class="footermid"> <a href="https://www.php.cn/ja/about/us.html">私たちについて</a> <a href="https://www.php.cn/ja/about/disclaimer.html">免責事項</a> <a href="https://www.php.cn/ja/update/article_0_1.html">Sitemap</a> </div> <div class="footerbottom"> <p> © php.cn All rights reserved </p> </div> </div> </footer> <input type="hidden" id="verifycode" value="/captcha.html"> <script>layui.use(['element', 'carousel'], function () {var element = layui.element;$ = layui.jquery;var carousel = layui.carousel;carousel.render({elem: '#test1', width: '100%', height: '330px', arrow: 'always'});$.getScript('/static/js/jquery.lazyload.min.js', function () {$("img").lazyload({placeholder: "/static/images/load.jpg", effect: "fadeIn", threshold: 200, skip_invisible: false});});});</script> <script src="/static/js/common_new.js"></script> <script type="text/javascript" src="/static/js/jquery.cookie.js?1740355673"></script> <script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script> <link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css?2' type='text/css' media='all'/> <script type='text/javascript' src='/static/js/viewer.min.js?1'></script> <script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script> <script type="text/javascript" src="/static/js/global.min.js?5.5.53"></script> <!-- Matomo --> <script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '9']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script> <!-- End Matomo Code --> </body> </html>