Как определить длину (в пикселях) строки, отображаемой на веб-странице?

Если я знаю размер шрифта (12) и семейство шрифтов (calibri), есть ли способ определить длину (в пикселях), какая строка будет взята после того, как она будет отображаться? Я абсолютно уверен в шрифте и размере. Существуют ли таблицы поиска для этой цели, чтобы определить длину в самом PHP-коде? Я пишу PHP-скрипт для динамического создания SVG-изображения, которое содержит различные поля, заполненные данными, выведенными из БД. Проблема в том, что мне нужно вручную обернуть текст вокруг и увеличить размер поля, если строка большая.

благодаря

Related of "Как определить длину (в пикселях) строки, отображаемой на веб-странице?"

Используйте функцию PHP imagettfbbox чтобы получить размер ограничивающей рамки для данной строки.

С другой стороны, вы можете использовать javascript для управления изображениями SVG, если вы хотите обработать его на стороне клиента. Таким образом, было бы неважно, имел ли клиент указанный шрифт или нет …

Вы можете использовать PHP GD для визуализации строки в качестве изображения и получения размера полученного изображения.

Если вы используете это, он должен работать:

  list($left,, $right) = imageftbbox( 12, 0, arial.ttf, "Hello World"); $width = $right - $left; 

Ваше название и фактическое сообщение, кажется, говорят немного разные вещи. Я предполагаю, что вы действительно спрашиваете, можно ли определить ширину в пикселях текста, отображаемого на веб-странице в вашем PHP-коде (до отображения веб-страницы).

Если да, то ответ «НЕТ». Указанный шрифт может быть недоступен на компьютере пользователя; s / он может иметь пользовательскую таблицу стилей; используйте большие размеры шрифта; и т.д…

Что вы можете сделать, так это определить ширину, используя javascript после визуализации страницы (очевидно, вы можете сделать это и на другой странице, и надеяться, что ничего не изменится до тех пор) и отправить это обратно на PHP. С некоторыми умными AJAX-IN вы можете даже сделать это на одной странице.

Взгляните на этот вопрос, чтобы узнать, как это сделать в javascript.

Используйте jQuery,

 $("text").each(function(){alert(this.innerHTML+" is "+$(this).width()+" pixels.");}); 

Если вы хотите определить длину строки текста, используя встроенные шрифты PHP (например, если вы используете imagestring ()), вы можете использовать:

 imagefontwidth() $text = "Your text here" $fontSize = 5; $textLength = imagefontwidth($fontSize) * strlen($text); 

Если вы не используете Build-In-Fonts, используйте imagettfbbox (), как указано выше.