外出中の初心者向けのヒント 外出中の PHP 初心者向け (14)
その他雑記
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チュートリアルに興味のある友人の参考になれば幸いです。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
