Position actuelle: Accueil> Derniers articles> Que dois-je faire lors de l'utilisation du numéro de police ImageFontWidth () hors de portée?

Que dois-je faire lors de l'utilisation du numéro de police ImageFontWidth () hors de portée?

M66 2025-05-25

Dans PHP, la fonction ImageFontWidth () est utilisée pour obtenir la largeur de caractère de la police intégrée. Sa syntaxe est très simple:

 int imagefontwidth ( int $font )

La police du paramètre est le numéro de police, et la plage de valeur est généralement de 1 à 5, représentant des polices intégrées de différentes tailles et styles. Si le numéro de police entrant dépasse cette plage, la fonction ImageFontWidth () reviendra fausse , provoquant une exception ou un affichage anormal du programme.

Pourquoi le nombre de polices dépasse-t-il la plage?

Cela est généralement dû au fait qu'aucune vérification valide n'est effectuée lorsque les paramètres sont passés, ou que le numéro de police provient de l'entrée utilisateur ou des données externes et n'est pas vérifié. La plage de numéros de police intégrée pour PHP est limitée, donc une fois cette plage dépassée, la fonction ne peut pas renvoyer la valeur de largeur correcte.

Comment détecter et résoudre le problème des numéros de police étant hors de portée?

1. Vérifiez si le numéro de police est dans la plage valide

Vous pouvez d'abord déterminer si le numéro de police entrant se situe entre 1 et 5. S'il est dépassé, le numéro de police par défaut est donné ou un message d'erreur est renvoyé.

Exemple de code:

 function safeImageFontWidth($font) {
    // La gamme valide de numéros de police intégrés est1~5
    if ($font < 1 || $font > 5) {
        // Sélectionnez la police par défaut ici1
        $font = 1;
    }
    return imagefontwidth($font);
}

// test
$font = 7; // Numéros de police en dehors de la plage
$width = safeImageFontWidth($font);
echo "La largeur de la police est: " . $width;

Cela évite la défaillance de l'imagefontwidth () due aux numéros de police illégaux entrants.

2. Utilisez la gestion des exceptions pour capter les erreurs

Bien que ImageFontWidth () ne lance pas d'exception, vous pouvez encapsuler une fonction qui gère spécifiquement cette erreur et renvoie à l'appelant.

 function getFontWidth($font) {
    if ($font < 1 || $font > 5) {
        throw new InvalidArgumentException("Numéro de police {$font} Hors de portée,Doit être dans1arriver5entre。");
    }
    return imagefontwidth($font);
}

try {
    $fontWidth = getFontWidth(10);
    echo "Largeur de police: {$fontWidth}";
} catch (InvalidArgumentException $e) {
    echo "erreur: " . $e->getMessage();
}

Cela permet une manipulation et un débogage plus clairs des erreurs de numérotation des polices.

3. Répanes de cartes avec numéros de police intégrés

Pour plus de flexibilité, une liste de numéros de police autorisés peut être définie et le programme filtre ou remplace automatiquement.

 $validFonts = [1, 2, 3, 4, 5];

function getValidFont($font, $validFonts) {
    if (!in_array($font, $validFonts)) {
        // Utiliser les polices par défaut
        return $validFonts[0];
    }
    return $font;
}

$font = 8;
$font = getValidFont($font, $validFonts);
$width = imagefontwidth($font);
echo "La largeur de la police est: {$width}";

De cette façon, même si le numéro de police est illégal, le programme peut être automatiquement ajusté pour assurer une exécution normale.

Résumer

  • Le nombre de polices de ImageFontWidth () doit se situer entre 1 et 5, sinon la fonction renvoie false .

  • Avant d'utiliser, vérifiez la légalité des numéros de police pour éviter d'être hors de portée.

  • Par défaut, les valeurs, la gestion des exceptions ou les tableaux de cartographie, les problèmes causés par l'extérieur peuvent être effectivement évités.

  • Le traitement raisonnable des numéros de police peut garantir la précision du calcul de la taille des polices d'image et éviter les exceptions du programme.