その他雑記
13.1 画像の生成
PHPは画像の操作や加工ができます。 GD ライブラリがインストールされている場合は、PHP を使用してイメージを生成することもできます。
Header("Content-type: image/gif");
$string=implode($argv," ");
$im = imagecreatefromgif("images/button1.gif"); ImageColorAllocate($im, 220, 210, 60);
$px = (imagesx($im)-7.5*strlen($string))/2;
ImageString($im,3,$px,9,$string, $orange);
ImageDestroy($im);
(翻訳者注: 上記のコード部分にはコメントがありません。PHP マニュアルの画像処理関数のセクションを参照してください)他のページでは、次のタグ を通じて呼び出され、上記の button.php3 コードでテキスト値を取得し、別途取得した画像ファイルに値を追加します。 --上記では、コード内の画像ファイルはimages/button1.gifです--最終的にブラウザに出力されます。フォーム フィールドでイメージ ボタンを使用したいが、ボタン上のテキストが変更されるたびに新しいイメージを再生成する必要がない場合は、この簡単な方法を使用してイメージ ファイルを動的に生成できます。
13.2 Cookies
PHPはHTTPベースのCookieをサポートしています。必要に応じて、通常の変数と同じように簡単に Cookie を使用できます。 Cookie はブラウザがクライアントに保存する情報であり、特定の PC 上の誰かがサイトを訪問したかどうか、訪問者のサイト上での軌跡などを知ることができます。 Cookie の使用の典型的な例は、ブラウザの設定のスクリーニングです。 Cookie は関数 setcookie() によって設定されます。 HTTP ヘッダーを出力する関数 header() と同様に、実際のコンテンツがブラウザーに出力される前に setcookie() を呼び出す必要があります。以下は簡単な例です:
if (empty($VisitedBefore))
{
// Cookie が設定されていない場合は、現在の時刻値を Cookie に割り当てます
// 関数の最後のパラメータは次のように宣言しますCookie 保存された時間
// この例では 1 年です
// time() 関数は、1970 年 1 月 1 日からの時間を秒単位で返します
SetCookie("VisitedBefore", time(), time() +(60 *60*24*365));
}
else
{
// 訪問者の皆様、また来てください
echo "こんにちは、おかえりなさい
// Cookie を読んで
if ( (time(; ) - $VisitedBefore) >= "(60*60*24*7)" )
echo "なぜ戻ってくるのに 1 週間もかかったのですか。もっと頻繁に来るべきです
}
? 13.3 よく使われる関数
よく使われる関数をいくつか簡単に見てみましょう。
array
array - 配列を生成します
count - 配列要素の数
sort - 配列の並べ替え、他にもいくつかの並べ替え関数が利用可能です
list - 配列要素をリストします
each - 次のキーと値のペアを返します
current - を返します現在の配列要素
next,prev - 現在の配列要素の前後のポインタを返します
日付と時刻
checkdate - 日付/時刻の形式を確認します
date - 日付/時刻の形式を生成します
time - 現在の時刻情報
strftime - date/ の形式を設定します時間
ディレクトリ、ファイルシステム
chdir - ディレクトリを変更します
dir - ディレクトリカテゴリ
opendir、readdir、closedir - ディレクトリを開く、読み取る、閉じる
fopen、fclose - ファイルを開く、閉じる
fgets、fgetss - コンテンツを 1 行ずつ読み取る
file - ファイル全体を配列変数に読み込みます
正規表現
ereg - 正規表現と一致します
eregi - 大文字と小文字を区別しない方法で正規表現と一致します
ereg_replace - 正規表現と一致して置換します
eregi_replace - 大文字と小文字を区別しない方法で正規表現を一致します 式と置換
split - ルールに従って文字列を分割し、配列形式で保存します
String
AddSlashes - スラッシュを追加した後に文字列を使用します
echo - 1 つ以上の文字列を出力します
join、implode - 配列要素を結合します 文字列に結合します
htmlentities、htmlspecialchars - HTML 特殊文字を HTML マークアップ形式に変換します
split - ルールに従って文字列を分割し、配列形式で保存します
13.4 サンプル ホームページを拡張します
上記の関数のいくつかを使用し、より動的コンテンツを追加する方法について考えますサンプルホームページへ。各ページの上部にナビゲーション バーを追加し、同時に現在のページがリンクによって自動的に表示されないようにすることができます。また、音楽、画像、その他のファイルをアップロードしてページを自動的に更新するためのユーザー確認フォームを追加することもできます。
ナビゲーションバー
実際には、footer.incファイルにコードを追加します。Web サイト内のサフィックス .php3 を持つすべてのファイルがナビゲーション バーに表示されると仮定します。次のコードは include/navbar.inc として保存されます:
/* 現在のページを除くすべてのファイルをナビゲーション バーに出力します。サイト上の .php3 ファイル*/
# ディレクトリを読み取ります
$d = dir("./");
echo "
| n"; >read())
{
// ファイルがない場合は無視します
if ( !is_file($entry) )
continue;
/* ファイル名と拡張子を分けます。 . は正規表現の特殊文字であるため、引用符で囲む必要があります */
list($filenm, $fileext) = split(".",$entry, 2);
// .php3 以外のファイルを無視します
if( $fileext != "php3" )
Continue;
/* すべての .php3 ファイルを選択したので、ファイルの最初の行 (タイトル) を検索しましょう
$title="something" と同様に
を分離します。上記のタイトルの内容、リンクテキストとして使用*/
$fp=fopen($entry,"r");
while($buffer=fgets($fp, 4096); buffer = trim( $buffer);
// 検索しやすいようにファイルの最初の行に各ファイルのタイトルを入れています
// ただし、変数名を変更すると * 問題が発生する可能性があります
if (ereg(" title *= * "", $buffer))
{
/* タイトルの内容を取得したので、
これに基づいてスペースやその他の処理を削除できます。
$title = "何とか何とか』などの PHP コードで処理する必要があります。 " */
eval($buffer);
// 次に、リンク テキストをタイトル テキストとして表示します
$linknm = $title;
break;
}
}
fclose($fp);
if ( $entry == Basename($PHP_SELF) )
echo "$linknm";
else
echo "$linknm"; ;close();
echo "
写真コレクション
画像ファイルを配置できるディレクトリを維持するために、HTTP ベースの認証、ファイル システム関数、およびファイル アップロード関数を参照します。
同時に、画像ファイルをリストできるディレクトリを作成する必要があります。
ファイルアップロード
include("include/common.inc");
// ここで別のユーザー認証を行ってみましょう
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm ="$MySiteName"");
Header("HTTP/1.0 401 Unauthorized");
echo "申し訳ありませんが、ファイルをアップロードする権限がありませんn";
exit;
}
else
{
if ( !( $PHP_AUTH_USER ==$MyName && $PHP_AUTH_PW==$MyPassword ) )
{
// ユーザー名とパスワードのペアが間違っている場合は、再認証を強制します
Header("WWW-Authenticate: Basic realm="My Realm"") ;
Header("HTTP/1.0 401 Unauthorized");
echo "エラー: $PHP_AUTH_USER/$PHP_AUTH_PW が無効です。
";
exit;
}
}
if ( $cancelit )
訪問者が「キャンセル」ボタンを押すと、ホームページにリダイレクトされます
header ( "Location:front_2.php3" )
}
function do_upload () {
global $userfile, $userfile_size, $userfile_name; userfile_type;
global $local_file, $error_msg;
if ( $userfile == "none" ) {
$error_msg = "アップロードするファイルが指定されていません。"; ( $ userfile_size > 2000000 )
{
$error_msg = "申し訳ありませんが、ファイルが大きすぎます。";
return;
// 以下の書き込み権限がある場所であればどこでも...
$upload_dir = "写真"; $local_file = "$upload_dir/$userfile_name";
if ( file_exists ( $local_file ) ) {
$error_msg = "その名前のファイルは既に存在します"
// を確認することもできます。このファイル名とファイルの種類のペア: gif、jpg、mp3…
rename($userfile, $local_file);
echo "ファイルはアップロードされました
n"; HREF=" $HTTP_REFERER">戻る
n";
}
$title = "ファイルをアップロード";
include("include/header.inc");
if (empty($ userfile) | $userfile=="none")
{
// 次のフォームを出力します
(ファイルのアップロードに若干の遅れが生じる場合があります。) FONT>
} else {
if ( $error_msg ) { echo "
"; ) {
do_upload ();
}
include("include/common.inc")
フォトギャラリー
$title = "Gallery";
include("include/header.inc");
?>
この PHP スクリプトは、複数のページに分割することでさらに改善できます。
$d = dir("写真");
while($entry = $d->read())
if (is_file("写真/$entry") )
echo "

}
$d->close();
);
? >
さらに、アップロードされたファイルを説明する入力要素を追加できます。この要素はファイルに保存され、上記のフォト ギャラリーのコードによって読み取られて表示されます。
以上、初心者がPHPを始めるためのヒント(14)を紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

thesecrettokeepingaphp-poweredwebsterunningsmootlyunderheavyloadinvolvesseveralkeystrategies:1)emform opcodecoduceSciptionexecutiontime、2)aatabasequerycachingwithiThing withiThistolessendavasoload、

コードをより明確かつ維持しやすくするため、依存関係が関心(DI)に注意する必要があります。 1)DIは、クラスを切り離すことにより、よりモジュール化されます。2)テストとコードの柔軟性の利便性を向上させ、3)DIコンテナを使用して複雑な依存関係を管理しますが、パフォーマンスの影響と円形の依存関係に注意してください。

はい、最適化されたAphPossibleandessention.1)CachingingusapCutoredatedAtabaseload.2)最適化、効率的なQueries、およびConnectionPooling.3)EnhcodeCodewithBultinctions、Avoididingglobalbariables、およびUsingopcodeching

keyStrategIestsoSificlyvoostphpappliceperformanceare:1)useopcodecachinglikeToreexecutiontime、2)最適化abaseの相互作用とプロペラインデックス、3)3)構成

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
