PHPでは、 ImageFontWidth()関数を使用して、組み込みフォントの文字幅を取得します。その構文は非常にシンプルです:
int imagefontwidth ( int $font )
パラメーター$ fontはフォント番号であり、値範囲は通常1〜5で、さまざまなサイズとスタイルの組み込みフォントを表します。着信フォント数がこの範囲を超えると、 ImageFontWidth()関数がfalseを返し、プログラムの例外または異常な表示を引き起こします。
これは通常、パラメーターが渡されたときに有効なチェックが実行されないか、フォント番号がユーザー入力または外部データからであり、検証されていないためです。 PHPの内蔵フォント番号の範囲は制限されているため、この範囲を超えると、関数は正しい幅値を返すことができません。
最初に、着信フォント数が1〜5のかどうかを判断できます。それを超えた場合、デフォルトのフォント番号が指定されているか、エラーメッセージが返されます。
サンプルコード:
function safeImageFontWidth($font) {
// 内蔵フォント番号の有効な範囲はです1~5
if ($font < 1 || $font > 5) {
// ここからデフォルトのフォントを選択してください1
$font = 1;
}
return imagefontwidth($font);
}
// テスト
$font = 7; // 範囲外のフォント番号
$width = safeImageFontWidth($font);
echo "フォント幅はです: " . $width;
これにより、違法なフォント数が着信によるImageFontWidth()障害が回避されます。
ImageFontWidth()は例外をスローしませんが、このエラーを特別に処理し、発信者にフィードバックする関数をカプセル化できます。
function getFontWidth($font) {
if ($font < 1 || $font > 5) {
throw new InvalidArgumentException("フォント番号 {$font} 範囲外,入っている必要があります1到着5間。");
}
return imagefontwidth($font);
}
try {
$fontWidth = getFontWidth(10);
echo "フォント幅: {$fontWidth}";
} catch (InvalidArgumentException $e) {
echo "間違い: " . $e->getMessage();
}
これにより、フォント番号のエラーのより明確な取り扱いとデバッグが可能になります。
柔軟性を高めるために、許可されたフォント番号のリストを定義でき、プログラムは自動的にフィルターまたは交換します。
$validFonts = [1, 2, 3, 4, 5];
function getValidFont($font, $validFonts) {
if (!in_array($font, $validFonts)) {
// デフォルトのフォントを使用します
return $validFonts[0];
}
return $font;
}
$font = 8;
$font = getValidFont($font, $validFonts);
$width = imagefontwidth($font);
echo "フォント幅はです: {$width}";
このようにして、フォント番号が違法であっても、通常の実行を確保するためにプログラムを自動的に調整できます。
ImageFontWidth()のフォント数は1〜5である必要があります。そうしないと、関数がfalseを返します。
使用する前に、フォント番号の合法性を確認して、範囲外でなくないようにしてください。
デフォルト値、例外処理またはマッピング配列、範囲外による問題は効果的に回避できます。
フォント番号の合理的な処理により、画像フォントサイズの計算の精度を確保し、プログラムの例外を回避できます。