ホームページ php教程 php手册 PHP と MySQL を使用してデータベース主導の Web サイトを構築する (5)

PHP と MySQL を使用してデータベース主導の Web サイトを構築する (5)

Jun 21, 2016 am 09:10 AM
gt lt nbsp php quot

mysql|データ|データベース

すべてがうまくいっているように見えますが、ユーザーと実際に対話するという目標はまだ達成されていません。ユーザーは任意の情報を入力して、それを PHP で処理できるようにする必要があります。パーソナライズされたウェルカム ページの例を続けて、ユーザーが自分の名前を任意に入力してメッセージに表示できるようにしたいと思います。ユーザーがデータを入力できるようにするには、HTML フォームを使用する必要があります。

フォームのコードは次のとおりです:



名:

姓名前:





ここ以外には、お好きな名前を入力できます。このフォームは、上記の 2 番目の接続 (クエリ文字列で firstname=Kevin&lastname=Yank を使用) とまったく同じ効果があります。送信ボタン (「GO」とマークされている) を押すと、ブラウザーは welcome.php をロードし、変数とその値をクエリ文字列に自動的に追加します。変数名は INPUT TYPE=TEXT タグの NAME 属性で、変数値はユーザーが入力した対応する内容です。

INPUT TYPE=TEXT タグの METHOD 属性は、リクエストで変数名と変数値を送信する方法をブラウザーに指示するために使用されます。 GET (上で使用したもの) はクエリ文字列で変数を渡すことを意味しますが、別のオプションもあります。クエリ文字列内の変数の表示は必ずしも満足のいくものであるとは限りません。場合によっては、技術的に実行できない場合もあります。ユーザーが大量のテキストを入力できるようにフォームに TEXTAREA タグを含めると、このテキストは長すぎてクエリ文字列に表示できず、ブラウザーでサポートされている最大 URL 長を超えます。別の方法では、ブラウザーが暗黙的に情報を渡すことができます。このメソッドのコードは、フォーム メソッドを GET から POST に変更したことを除いて、上で見たフォームのコードとほぼ同じです。



First名前:

姓:





このフォームは機能的には前のフォームと同じです。唯一の違いは、ユーザーが「GO」ボタンを押したときにロードされるページの URL にはクエリ文字列が含まれないことです。これにより、クエリ文字列に表示せずに、フォームを通じて大量のデータや機密データ (パスワードなど) を送信できるようになります。一方、ユーザーがフォームの送信によって生成された結果ページをお気に入りに追加した場合、そのお気に入りには送信されたデータが含まれていないため、役に立ちません。さらに、ちなみに、AltaVista のような検索エンジンは常にクエリ文字列を使用してクエリ条件を送信します。その主な理由は、ユーザーが将来同じ検索を実行するためにクエリ結果ページをお気に入りに追加しやすくするためです。 URLに含まれています。

ここでは、フォームを使用して PHP とのユーザー対話を実現するための基本原則について説明します。今後の例では、より高度な問題とテクニックについて説明します。

制御ステートメント

前に見た PHP コードの例では、Web ページにテキストを出力する単一のステートメント、または連続して実行される一連のステートメントがありました。他の言語でプログラムを書いたことがある場合は、実際にこれほど単純なプログラムはほとんどないことをご存知でしょう。

他のプログラミング言語と同様、PHP もスクリプトで「制御フロー」を処理する便利な方法を提供します。つまり、PHP には、実行順序に拘束されない特別なステートメントがいくつか含まれています。このような文を「制御文」といいます。分かりませんか?心配しないでください!うまく役立つ例がいくつかあります。

最も基本的でよく使われる制御文はif-else文です。その構造は次のとおりです:


if ( ) {
// が true の場合、ステートメントは実行されます。
} else {
//(オプション) が false の場合、ステートメントが実行されます。
}
この制御言語を使用すると、いくつかの条件の true または false に基づいて、どのステートメントのセットを実行するかを PHP に決定させることができます。これが少し空っぽだと思わない場合は、作成した welcome.php ファイルを次のように変更できます。
if ( $name == "Kevin" ) {
echo( "Welcome, oh glorious leader!" );
} else {
echo( "Welcome, $name!" );
}



さて、このページに渡された name 変数の値が Kevin の場合、特別なメッセージが表示されます。それ以外の場合は、入力した名前を含む単純なメッセージが表示されます。

この構造では、「else 節」 (if-else 構造の条件が false の場合に何を実行するかを示します) はオプションであることに注意してください。上の例では、適切な名前が入力されたときに特別なメッセージを表示することが目的の場合、そうでない場合は何も表示されません。このコードは次のようになります:


if ( $name == "Kevin" ) {
echo( "Welcome, oh glorious leader!" );
}



== 上記の条件で使用される演算子です2 つの値が等しいかどうかを比較するために使用されます。ここで 2 つの等号を入力する必要があることを覚えておいてください。等号を入力すると、実際には前に説明した代入演算子を使用することになり、2 つの変数の値を比較するのではなく、新しい値を変数に代入します (この操作は偶然にも true を返します)。この結果、条件が常に true になるだけでなく、確認したい変数の値も変更され、多くの問題が発生する可能性があります。

このエラーを防ぐ安全な方法は、次のように比較に使用される変数と定数の位置を逆にすることです:

if ( "Kevin" == $name ) {


これの効果は全く同じです、しかし、2 番目の等号を忘れた場合に何が起こるかを見てみましょう。 PHP は変数 ($name) の値を定数 (「Kevin」) に挿入しようとします。定数の値は変更できないため、PHP は中断して、2 番目の等号を忘れたことをすぐに知らせるエラー メッセージを表示します。

条件は、単一の同等性の比較よりも複雑になる場合があります。名と姓を同時に取得できる welcome.php3 を変更したことを思い出してください。特定の人に特別なメッセージを表示したい場合は、両方の変数を同時に比較できます:


if ( "Kevin" == $firstname および "Yank" == $lastname ) {
echo( "Welcome 、ああ、栄光のリーダー!" );
}



この条件は、$firstname の値が Kevin で、$lastname の値が Yank の場合にのみ true を返します。と の意味は、両方の比較が true の場合にのみ、条件全体が true を返すということです。もう 1 つの記号は or です。これは、2 つの比較のうち少なくとも 1 つが true の場合に、条件全体が true を返します。 JavaScript と C の演算子 (&&(and) と ||(or)) に精通している場合は、PHP でも同様に使用できます。

以下では、さらに複雑な比較を見ていきます。ここで必要なのは、if-else ステートメントの基本的な理解だけです。

もう 1 つの一般的に使用される PHP 制御ステートメントは、while ループです。 if-else ステートメントを使用すると、条件に基づいて一連のステートメントを実行するかどうかを選択でき、while ループを使用すると、条件に基づいて一連のステートメントを繰り返す回数を決定できます。 while ループの基本的な形式は次のようになります:


while ( ) {
// が true である限り繰り返し実行されるステートメント
}



これはelse 節のないステートメントと同じ if-else ステートメントは非常に似ています。違いは、条件が true の場合、ステートメントの実行後、ターミネータ (}) の後のステートメントは実行されなくなりますが、条件が再度チェックされることです。この条件がまだ当てはまる場合。ステートメントは、条件が true でなくなるまで繰り返し実行されます。この条件が初めて false を返した場合 (何度チェックしても)、実行はループに続く (ターミネータの後) ステートメントにジャンプします。

このようなループは、長いリスト (データベースに保存されているジョークなど) を処理するために使用できます。以下に、10 まで数える簡単な例を示します。


$count = 1;
while ($count echo( "$count " );
$count++;
}



このステートメントは怖く見えるかもしれませんが、見てみましょうそれを一行ずつ。最初の行では、$count という変数を定義し、値 1 を割り当てます。 2 行目は while ループの始まりで、条件は $count が (<=) 10 以下であることです。 3 行目と 4 行目は while ループの本体で、条件が true の場合に繰り返し実行します。 3 行目は、$count の値とその後にスペースを出力するだけです。 4 行目は、$count の値を 1 ずつ増やします ($count++ は $count = $count + 1 の短縮形です。この 2 つはまったく同じ意味です)。

これで、このプログラムがどのように実行されるかを見てみましょう。条件が初めてチェックされるとき、$count の値は 1 であるため、条件は true です。 $count の値 (1) が出力され、$count には新しい値 2 が割り当てられます。条件が 2 回目にチェックされると、条件は依然として true であるため、2 が出力され、新しい値 3 が割り当てられます。このプロセスは 3、4、5、6、7、8、9 を 10 まで出力し続けます。最後に、$count に値 11 が割り当てられ、条件が false になり、ループが終了します。最終結果は、「1 2 3 4 5 6 7 8 9 10」のような文字列を出力します。

この条件例では、新しい演算子 <= (以下) を使用します。数値比較に使用される他の演算子は、>= (以上)、< (より小さい)、> (より大きい)、および != (等しくない) です。最後のものは文字列比較にも使用できます。

多目的ページ

構築するウェブサイトの各ページの上部に訪問者の名前を表示したい場合。ウェルカム メッセージを自動的に表示する前述の例を使用すると、基本的には半分まで到達しました。ここで、この例のこれらの問題を解決する必要があります:

1 つのページだけでなく、サイトのすべてのページに表示する必要があります。

サイト内のどのページが最初に表示されるかは、私たちには制御できません。

最初の問題の解決策はそれほど難しくありません。ページ上にユーザー名変数を取得したら、それをクエリ文字列に追加することで、任意のリクエストに渡すことができます:

リンク


HTML 識別子の途中に PHP コードを埋め込んでいることに注意してください。実際、これは非常に一般的に使用されています。 echo 関数についてはすでによく知っていますが、urlencode 関数についてはまだよくわかっていません。この関数の機能は、文字列内の一部の特殊文字 (スペースなど) を特定のエンコーディングに変換して、クエリ文字列に表示できるようにすることです。たとえば、$name 変数の値が「Kevin Yank」で、クエリ文字列にスペースが許可されていない場合、newpage.php で $name が作成されると、urlencode の出力は Kevin+Yank になります。自動的に元に戻します。

それでは、サイトへの最初の接続にユーザー名を渡します。ここで必要なのは、最初に表示されたときにその値を取得することだけです。上記の例では、ユーザー名を取得するフォームを処理する HTML ページを作成しました。問題は、ユーザーがサイトにアクセスするたびにこのページから開始することを強制できないことです。

解決策は、サイトのすべてのページでユーザー名が指定されているかどうかを確認し、必要に応じてユーザーにユーザー名の入力を求めることです。これは、サイト上のすべてのページでユーザー名を表示でき、ユーザー名が指定されていない場合は入力を求めるプロンプトを表示できる必要があることを意味します。今、if-else ステートメントを使おうと考えているなら、それはあなたの学習能力が非常に優れていることを証明しています。

「多機能ページ」は、さまざまな条件に応じてまったく異なるコンテンツを表示する必要があります。このページのソース プログラムは次のようになります。ページ概要


) { ?>




< BODY>




このプログラムは最初は混乱しているように見えますが、実際には通常の if-else ステートメントに変わりはありませんが、PHP ステートメントの前に使用したものの代わりに HTML コードが挿入されています。この例は、PHP の大きな利点の 1 つを示しています。それは、「PHP モード」に入るときと終了するときを自由に選択できることです。 は「通常の HTML モード」に戻るコマンドと考えることができます。これにより、上記の例が理解しやすくなります。

if-else ステートメントには別の形式があります。この形式を使用すると、プログラムが読みやすくなります。この形式を使用すると、「多目的ページ」のソース プログラムは次のようになります:




多目的ページの概要
< ;/HEAD>

): ?>

< ? php else: ?>







必要なツールがすべて揃ったので、サイトのサンプル ページを見てみましょう:



TITLE><br></HEAD><br><BODY><br><?php if ( isset($name) ): ?><br> <P>あなたの名前: <?php echo($name); ;</P><br> <P>この段落には<br><A HREF="newpage.php?name=<?php echo(urlencode<br/>) が含まれています($name)); ?>">リンク</A> <br>name 変数を次のドキュメントに渡します。</P><br><?php else: ?><br> <--名前が指定されていないため、ユーザーに名前の入力を求めます。 --><br> <FORM ACTION=<?php echo($PHP_SELF) ?> 名前を入力してください: < INPUT TYPE=TEXT NAME="名前"><br> <INPUT TYPE=SUBMIT VALUE="GO"><br> </FORM><br><?php endif; ?><br></BODY><br>< /HTML><br><br> <br><br> 上記のプログラムには 2 つの新しい点がありますが、それらを理解するのはそれほど難しいことではありません。まず、条件で新しい関数を使用します。この場合、これは次のことを意味します。ユーザー名が指定されている場合、関数は論理値 true を返します (出力)。変数に値が割り当てられていない場合 (この場合、ユーザー名が指定されていないことを意味します)、関数は論理値を返します (出力)。 2 番目の新しい点は、指定された FORM フラグの ACTION 属性での $PHP_SELF 変数の使用です。具体的には、フォームが送信時に同じページを指す場合、$PHP_SELF は常に現在のページの URL に設定されます。 , これは簡単な方法ですが、$name 変数はすでに割り当てられています <br><br> この段落を Web サイト上のすべての Web ページに追加すると、訪問者がどの Web ページに初めてアクセスするかに関係なく、プロンプトが表示されます。ユーザー名を入力し、「GO」を押した後でのみ、実際にアクセスしたい Web ページにアクセスできます。入力されたユーザー名は、各接続のクエリ文字列が後続の各ページに渡されます。 <br><br>結論<br><br> この章では、ステートメント、変数、演算子、制御ステートメントなどのすべての基本的な構文を紹介しました。 PHP の威力は、何百もの組み込み関数にあり、これらの関数を使用して MySQL データベース内のデータにアクセスし、動的に生成された画像から PDF ファイルを作成したり、その他多くのことを実行したりできます。 <br><br> 第 4 章では、MySQL を使用して、前の章で確立したジョーク データベースを Web 上で公開する方法を検討します。 <br><br><br><br> </p> <center> </center> <p style="width:100%;text-align:center;margin:10px 0"> <br> <br></p> <p style="width:100%;text-align:center;margin:10px 0"></p> </div> </div> <div class="wzconShengming_sp"> <div class="bzsmdiv_sp">このウェブサイトの声明</div> <div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div> </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="AI_ToolDetails_main4sR"> <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="phpgenera_Details_mainR4"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hotarticle2.png" alt="" /> <h2>人気の記事</h2> </div> <div class="phpgenera_Details_mainR4_bottom"> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796780570.html" title="R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)" class="phpgenera_Details_mainR4_bottom_title">R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3週間前</span> <span>By 尊渡假赌尊渡假赌尊渡假赌</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796780641.html" title="R.E.P.O.最高のグラフィック設定" class="phpgenera_Details_mainR4_bottom_title">R.E.P.O.最高のグラフィック設定</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3週間前</span> <span>By 尊渡假赌尊渡假赌尊渡假赌</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796785841.html" title="アサシンのクリードシャドウズ:シーシェルリドルソリューション" class="phpgenera_Details_mainR4_bottom_title">アサシンのクリードシャドウズ:シーシェルリドルソリューション</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>1週間前</span> <span>By DDD</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796780520.html" title="R.E.P.O.誰も聞こえない場合はオーディオを修正する方法" class="phpgenera_Details_mainR4_bottom_title">R.E.P.O.誰も聞こえない場合はオーディオを修正する方法</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3週間前</span> <span>By 尊渡假赌尊渡假赌尊渡假赌</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796785857.html" title="Atomfallのクレーンコントロールキーカードを見つける場所" class="phpgenera_Details_mainR4_bottom_title">Atomfallのクレーンコントロールキーカードを見つける場所</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>1週間前</span> <span>By DDD</span> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="https://www.php.cn/ja/article.html">もっと見る</a> </div> </div> </div> --> <div class="phpgenera_Details_mainR3"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hottools2.png" alt="" /> <h2>ホットAIツール</h2> </div> <div class="phpgenera_Details_mainR3_bottom"> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411540686492.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undresser.AI Undress" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/ai/undresserai-undress" title="Undresser.AI Undress" class="phpmain_tab2_mids_title"> <h3>Undresser.AI Undress</h3> </a> <p>リアルなヌード写真を作成する AI 搭載アプリ</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411552797167.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="AI Clothes Remover" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/ai/ai-clothes-remover" title="AI Clothes Remover" class="phpmain_tab2_mids_title"> <h3>AI Clothes Remover</h3> </a> <p>写真から衣服を削除するオンライン AI ツール。</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173410641626608.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Undress AI Tool" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/ai/undress-ai-tool" title="Undress AI Tool" class="phpmain_tab2_mids_title"> <h3>Undress AI Tool</h3> </a> <p>脱衣画像を無料で</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173411529149311.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="Clothoff.io" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/ai/clothoffio" title="Clothoff.io" class="phpmain_tab2_mids_title"> <h3>Clothoff.io</h3> </a> <p>AI衣類リムーバー</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/ai/ai-hentai-generator" title="AI Hentai Generator" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/ai_manual/001/246/273/173405034393877.jpg?x-oss-process=image/resize,m_fill,h_50,w_50" src="/static/imghw/default1.png" alt="AI Hentai Generator" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/ai/ai-hentai-generator" title="AI Hentai Generator" class="phpmain_tab2_mids_title"> <h3>AI Hentai Generator</h3> </a> <p>AIヘンタイを無料で生成します。</p> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="https://www.php.cn/ja/ai">もっと見る</a> </div> </div> </div> <script src="https://sw.php.cn/hezuo/cac1399ab368127f9b113b14eb3316d0.js" type="text/javascript"></script> <div class="phpgenera_Details_mainR4"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hotarticle2.png" alt="" /> <h2>人気の記事</h2> </div> <div class="phpgenera_Details_mainR4_bottom"> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796780570.html" title="R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)" class="phpgenera_Details_mainR4_bottom_title">R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3週間前</span> <span>By 尊渡假赌尊渡假赌尊渡假赌</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796780641.html" title="R.E.P.O.最高のグラフィック設定" class="phpgenera_Details_mainR4_bottom_title">R.E.P.O.最高のグラフィック設定</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3週間前</span> <span>By 尊渡假赌尊渡假赌尊渡假赌</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796785841.html" title="アサシンのクリードシャドウズ:シーシェルリドルソリューション" class="phpgenera_Details_mainR4_bottom_title">アサシンのクリードシャドウズ:シーシェルリドルソリューション</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>1週間前</span> <span>By DDD</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796780520.html" title="R.E.P.O.誰も聞こえない場合はオーディオを修正する方法" class="phpgenera_Details_mainR4_bottom_title">R.E.P.O.誰も聞こえない場合はオーディオを修正する方法</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>3週間前</span> <span>By 尊渡假赌尊渡假赌尊渡假赌</span> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/1796785857.html" title="Atomfallのクレーンコントロールキーカードを見つける場所" class="phpgenera_Details_mainR4_bottom_title">Atomfallのクレーンコントロールキーカードを見つける場所</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <span>1週間前</span> <span>By DDD</span> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="https://www.php.cn/ja/article.html">もっと見る</a> </div> </div> </div> <div class="phpgenera_Details_mainR3"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hottools2.png" alt="" /> <h2>ホットツール</h2> </div> <div class="phpgenera_Details_mainR3_bottom"> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/toolset/development-tools/92" title="メモ帳++7.3.1" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58ab96f0f39f7357.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="メモ帳++7.3.1" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/toolset/development-tools/92" title="メモ帳++7.3.1" class="phpmain_tab2_mids_title"> <h3>メモ帳++7.3.1</h3> </a> <p>使いやすく無料のコードエディター</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/toolset/development-tools/93" title="SublimeText3 中国語版" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58ab97a3baad9677.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 中国語版" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/toolset/development-tools/93" title="SublimeText3 中国語版" class="phpmain_tab2_mids_title"> <h3>SublimeText3 中国語版</h3> </a> <p>中国語版、とても使いやすい</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/toolset/development-tools/121" title="ゼンドスタジオ 13.0.1" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58ab97ecd1ab2670.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="ゼンドスタジオ 13.0.1" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/toolset/development-tools/121" title="ゼンドスタジオ 13.0.1" class="phpmain_tab2_mids_title"> <h3>ゼンドスタジオ 13.0.1</h3> </a> <p>強力な PHP 統合開発環境</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/toolset/development-tools/469" title="ドリームウィーバー CS6" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58d0e0fc74683535.jpg?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="ドリームウィーバー CS6" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/toolset/development-tools/469" title="ドリームウィーバー CS6" class="phpmain_tab2_mids_title"> <h3>ドリームウィーバー CS6</h3> </a> <p>ビジュアル Web 開発ツール</p> </div> </div> <div class="phpmain_tab2_mids_top"> <a href="https://www.php.cn/ja/toolset/development-tools/500" title="SublimeText3 Mac版" class="phpmain_tab2_mids_top_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" class="lazy" data-src="https://img.php.cn/upload/manual/000/000/001/58d34035e2757995.png?x-oss-process=image/resize,m_fill,h_50,w_72" src="/static/imghw/default1.png" alt="SublimeText3 Mac版" /> </a> <div class="phpmain_tab2_mids_info"> <a href="https://www.php.cn/ja/toolset/development-tools/500" title="SublimeText3 Mac版" class="phpmain_tab2_mids_title"> <h3>SublimeText3 Mac版</h3> </a> <p>神レベルのコード編集ソフト(SublimeText3)</p> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="https://www.php.cn/ja/ai">もっと見る</a> </div> </div> </div> <div class="phpgenera_Details_mainR4"> <div class="phpmain1_4R_readrank"> <div class="phpmain1_4R_readrank_top"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/hotarticle2.png" alt="" /> <h2>ホットトピック</h2> </div> <div class="phpgenera_Details_mainR4_bottom"> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/gmailyxdlrkzn" title="Gmailメールのログイン入り口はどこですか?" class="phpgenera_Details_mainR4_bottom_title">Gmailメールのログイン入り口はどこですか?</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/eyess.png" alt="" /> <span>7433</span> </div> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/tiezi.png" alt="" /> <span>15</span> </div> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/cakephp-tutor" title="CakePHP チュートリアル" class="phpgenera_Details_mainR4_bottom_title">CakePHP チュートリアル</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/eyess.png" alt="" /> <span>1359</span> </div> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/tiezi.png" alt="" /> <span>52</span> </div> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/steamdzhmcssmgs" title="Steamのアカウント名の形式は何ですか" class="phpgenera_Details_mainR4_bottom_title">Steamのアカウント名の形式は何ですか</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/eyess.png" alt="" /> <span>76</span> </div> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/tiezi.png" alt="" /> <span>11</span> </div> </div> </div> <div class="phpgenera_Details_mainR4_bottoms"> <a href="https://www.php.cn/ja/faq/winactivationkeyper" title="Win11 Activation Key Permanent" class="phpgenera_Details_mainR4_bottom_title">Win11 Activation Key Permanent</a> <div class="phpgenera_Details_mainR4_bottoms_info"> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/eyess.png" alt="" /> <span>29</span> </div> <div class="phpgenera_Details_mainR4_bottoms_infos"> <img src="/static/imghw/tiezi.png" alt="" /> <span>19</span> </div> </div> </div> </div> <div class="phpgenera_Details_mainR3_more"> <a href="https://www.php.cn/ja/faq/zt">もっと見る</a> </div> </div> </div> </div> </div> <div class="Article_Details_main2"> <div class="phpgenera_Details_mainL4"> <div class="phpmain1_2_top"> <a href="javascript:void(0);" class="phpmain1_2_top_title">Related knowledge<img src="/static/imghw/index2_title2.png" alt="" /></a> </div> <div class="phpgenera_Details_mainL4_info"> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796604977.html" title="CakePHP プロジェクトの構成" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/202409/10/2024091017250464952.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="CakePHP プロジェクトの構成" /> </a> <a href="https://www.php.cn/ja/faq/1796604977.html" title="CakePHP プロジェクトの構成" class="phphistorical_Version2_mids_title">CakePHP プロジェクトの構成</a> <span class="Articlelist_txts_time">Sep 10, 2024 pm 05:25 PM</span> <p class="Articlelist_txts_p">この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。</p> </div> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796733273.html" title="Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/000/000/080/676a727698393240.png?x-oss-process=image/resize,m_fill,h_207,w_330" alt="Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド" /> </a> <a href="https://www.php.cn/ja/faq/1796733273.html" title="Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド" class="phphistorical_Version2_mids_title">Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド</a> <span class="Articlelist_txts_time">Dec 24, 2024 pm 04:42 PM</span> <p class="Articlelist_txts_p">PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。</p> </div> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796604998.html" title="CakePHP の日付と時刻" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/000/887/227/172596042710877.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="CakePHP の日付と時刻" /> </a> <a href="https://www.php.cn/ja/faq/1796604998.html" title="CakePHP の日付と時刻" class="phphistorical_Version2_mids_title">CakePHP の日付と時刻</a> <span class="Articlelist_txts_time">Sep 10, 2024 pm 05:27 PM</span> <p class="Articlelist_txts_p">Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。</p> </div> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796604983.html" title="CakePHP データベースの操作" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/000/465/014/172596033673647.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="CakePHP データベースの操作" /> </a> <a href="https://www.php.cn/ja/faq/1796604983.html" title="CakePHP データベースの操作" class="phphistorical_Version2_mids_title">CakePHP データベースの操作</a> <span class="Articlelist_txts_time">Sep 10, 2024 pm 05:25 PM</span> <p class="Articlelist_txts_p">CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。</p> </div> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796604999.html" title="CakePHP ファイルのアップロード" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/000/000/164/172596043255110.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="CakePHP ファイルのアップロード" /> </a> <a href="https://www.php.cn/ja/faq/1796604999.html" title="CakePHP ファイルのアップロード" class="phphistorical_Version2_mids_title">CakePHP ファイルのアップロード</a> <span class="Articlelist_txts_time">Sep 10, 2024 pm 05:27 PM</span> <p class="Articlelist_txts_p">ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。</p> </div> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796604978.html" title="CakePHP ルーティング" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/000/465/014/172596030742788.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="CakePHP ルーティング" /> </a> <a href="https://www.php.cn/ja/faq/1796604978.html" title="CakePHP ルーティング" class="phphistorical_Version2_mids_title">CakePHP ルーティング</a> <span class="Articlelist_txts_time">Sep 10, 2024 pm 05:25 PM</span> <p class="Articlelist_txts_p">この章では、ルーティングに関連する次のトピックを学習します。</p> </div> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796605002.html" title="CakePHP について話し合う" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/202409/10/2024091017281739989.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="CakePHP について話し合う" /> </a> <a href="https://www.php.cn/ja/faq/1796605002.html" title="CakePHP について話し合う" class="phphistorical_Version2_mids_title">CakePHP について話し合う</a> <span class="Articlelist_txts_time">Sep 10, 2024 pm 05:28 PM</span> <p class="Articlelist_txts_p">CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー</p> </div> <div class="phphistorical_Version2_mids"> <a href="https://www.php.cn/ja/faq/1796604997.html" title="CakePHP バリデータの作成" class="phphistorical_Version2_mids_img"> <img onerror="this.onerror=''; this.src='/static/imghw/default1.png'" src="/static/imghw/default1.png" class="lazy" data-src="https://img.php.cn/upload/article/000/000/164/172596041825531.jpg?x-oss-process=image/resize,m_fill,h_207,w_330" alt="CakePHP バリデータの作成" /> </a> <a href="https://www.php.cn/ja/faq/1796604997.html" title="CakePHP バリデータの作成" class="phphistorical_Version2_mids_title">CakePHP バリデータの作成</a> <span class="Articlelist_txts_time">Sep 10, 2024 pm 05:26 PM</span> <p class="Articlelist_txts_p">Validator は、コントローラーに次の 2 行を追加することで作成できます。</p> </div> </div> <a href="https://www.php.cn/ja/php-tutorials.html" class="phpgenera_Details_mainL4_botton"> <span>See all articles</span> <img src="/static/imghw/down_right.png" alt="" /> </a> </div> </div> </div> </main> <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?1744136993"></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> <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> <script> // top layui.use(function () { var util = layui.util; util.fixbar({ on: { mouseenter: function (type) { layer.tips(type, this, { tips: 4, fixed: true, }); }, mouseleave: function (type) { layer.closeAll("tips"); }, }, }); }); document.addEventListener("DOMContentLoaded", (event) => { // 定义一个函数来处理滚动链接的点击事件 function setupScrollLink(scrollLinkId, targetElementId) { const scrollLink = document.getElementById(scrollLinkId); const targetElement = document.getElementById(targetElementId); if (scrollLink && targetElement) { scrollLink.addEventListener("click", (e) => { e.preventDefault(); // 阻止默认链接行为 targetElement.scrollIntoView({ behavior: "smooth" }); // 平滑滚动到目标元素 }); } else { console.warn( `Either scroll link with ID '${scrollLinkId}' or target element with ID '${targetElementId}' not found.` ); } } // 使用该函数设置多个滚动链接 setupScrollLink("Article_Details_main1L2s_1", "article_main_title1"); setupScrollLink("Article_Details_main1L2s_2", "article_main_title2"); setupScrollLink("Article_Details_main1L2s_3", "article_main_title3"); setupScrollLink("Article_Details_main1L2s_4", "article_main_title4"); setupScrollLink("Article_Details_main1L2s_5", "article_main_title5"); setupScrollLink("Article_Details_main1L2s_6", "article_main_title6"); // 可以继续添加更多的滚动链接设置 }); window.addEventListener("scroll", function () { var fixedElement = document.getElementById("Article_Details_main1Lmain"); var scrollTop = window.scrollY || document.documentElement.scrollTop; // 兼容不同浏览器 var clientHeight = window.innerHeight || document.documentElement.clientHeight; // 视口高度 var scrollHeight = document.documentElement.scrollHeight; // 页面总高度 // 计算距离底部的距离 var distanceToBottom = scrollHeight - scrollTop - clientHeight; // 当距离底部小于或等于300px时,取消固定定位 if (distanceToBottom <= 980) { fixedElement.classList.remove("Article_Details_main1Lmain"); fixedElement.classList.add("Article_Details_main1Lmain_relative"); } else { // 否则,保持固定定位 fixedElement.classList.remove("Article_Details_main1Lmain_relative"); fixedElement.classList.add("Article_Details_main1Lmain"); } }); </script> </body> </html>