現在の位置: ホーム> 最新記事一覧> ImageFontWidth()フォント番号を範囲外で使用する場合はどうすればよいですか?

ImageFontWidth()フォント番号を範囲外で使用する場合はどうすればよいですか?

M66 2025-05-25

PHPでは、 ImageFontWidth()関数を使用して、組み込みフォントの文字幅を取得します。その構文は非常にシンプルです:

 int imagefontwidth ( int $font )

パラメーター$ fontはフォント番号であり、値範囲は通常1〜5で、さまざまなサイズとスタイルの組み込みフォントを表します。着信フォント数がこの範囲を超えると、 ImageFontWidth()関数がfalseを返し、プログラムの例外または異常な表示を引き起こします。

フォント番号が範囲を超えるのはなぜですか?

これは通常、パラメーターが渡されたときに有効なチェックが実行されないか、フォント番号がユーザー入力または外部データからであり、検証されていないためです。 PHPの内蔵フォント番号の範囲は制限されているため、この範囲を超えると、関数は正しい幅値を返すことができません。

フォント番号が範囲外であるという問題を検出して解決する方法は?

1.フォント番号が有効な範囲内にあるかどうかを確認します

最初に、着信フォント数が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()障害が回避されます。

2。例外処理を使用してエラーをキャッチします

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();
}

これにより、フォント番号のエラーのより明確な取り扱いとデバッグが可能になります。

3.内蔵フォント番号を備えたマップアレイ

柔軟性を高めるために、許可されたフォント番号のリストを定義でき、プログラムは自動的にフィルターまたは交換します。

 $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を返します。

  • 使用する前に、フォント番号の合法性を確認して、範囲外でなくないようにしてください。

  • デフォルト値、例外処理またはマッピング配列、範囲外による問題は効果的に回避できます。

  • フォント番号の合理的な処理により、画像フォントサイズの計算の精度を確保し、プログラムの例外を回避できます。