Comment déterminer la longueur (en pixels) d'une chaîne en cours de rendu sur une page web?
Si je sais que la taille de la police (12) et la famille de police (calibri), est-il un moyen pour déterminer la longueur (en pixels) d'une chaîne donnée prendra après, il sera rendu? Je suis absolument certain de la police et de la taille. Existe-il des tables de choix pour cette fin de déterminer la longueur dans le code PHP lui-même? Je suis en train d'écrire un script PHP pour générer dynamiquement une image SVG, qui contient diverses boîtes remplies avec des données extraites de la bd. Le problème est que je dois manuellement le texte à la ligne autour et à l'augmentation de la taille de la boîte si la ficelle est grosse.
Grâce
Vous devez vous connecter pour publier un commentaire.
Utiliser la fonction PHP
imagettfbbox
pour obtenir la taille de la boîte englobante de la chaîne.D'autre part, vous peut utiliser aussi javascript pour manipuler des images SVG dans le cas où vous souhaitez gérer sur le côté client. De cette façon, il ne serait même pas d'importance si le client avait la police spécifiée ou pas...
Vous pouvez utiliser PHP GD au rendu de la chaîne comme une image et la taille de l'image résultante.
Si vous utilisez cela, il convient de travail:
imageftbbox
Titre et de l'emploi effectif à l'air de dire des choses légèrement différentes. Je devine ce que vous êtes vraiment se poser est de savoir si il est possible de déterminer la largeur en pixels du texte de l'affichage sur une page web dans votre code PHP (avant la page web en cours de rendu).
Si oui, la réponse est "NON". Dit la police peut ne pas être disponible sur l'ordinateur de l'utilisateur; il peut avoir une feuille de style personnalisée appliquée; utiliser des polices de grande taille; etc...
Ce que vous peut faire est de déterminer que la largeur à l'aide de javascript après la page est rendue (évidemment, vous pouvez le faire dans une autre page aussi bien et espère que rien ne change jusqu'à l'époque) et de le soumettre à PHP. Avec quelques petits malins AJAX-ing, vous pouvez même le faire sur la même page.
Prendre un coup d'oeil à cette question pour plus de détails sur la façon de le faire en javascript.
phalacee
Utiliser jQuery,
Si vous voulez déterminer la longueur de la chaîne de texte à l'aide de PHP Construire-Dans-les Polices de caractères (par exemple, si vous utilisez la fonction imagestring()), vous pouvez utiliser:
Si vous n'utilisez pas le Construire-Dans-les Polices, utilisez imagettfbbox(), comme mentionné ci-dessus.