Большая часть ответа может решить вашу конкретную проблему, но я просто хочу добавить больше информации о выборе htmlElement.
в VanillaJS (чистый Javascript) DOM. Вы можете выбрать элемент с помощью метода 3 DOM.
Выбрать по атрибуту идентификатора
elem = document.getElementById("id")
Выбрать по атрибуту класса
elem = document.getElementsByClassName("class")
Выберите по TagName
elem = document.getElementByTagName("Tag")
и еще 1 дополнительный способ, который использовали.
elem = document.querySelector(selector)
Селектор может быть одним из «.class», «# id» или «Теги»
Спасибо
Используйте функцию PHP imagettfbbox
, чтобы получить размер ограничивающая рамка для данной строки.
С другой стороны, вы можете также использовать javascript для управления изображениями SVG в случае, если вы захотите обработать это на стороне клиента. Таким образом, даже не имеет значения, был ли у клиента указанный шрифт или нет ...
Ваш заголовок и фактическое сообщение, кажется, говорят немного разные вещи. Я предполагаю, что вы действительно спрашиваете, возможно ли определить ширину в пикселях текста, отображаемого на веб-странице в вашем PHP-коде (до отображения веб-страницы).
Если так, то ответ «НЕТ». Указанный шрифт может быть недоступен на компьютере пользователя; у него / нее могут быть применены пользовательские таблицы стилей; использовать большие размеры шрифта; и т.д ...
То, что вы можете сделать, это определить эту ширину, используя javascript после страницы, отрисованной (очевидно, вы можете сделать это и на другой странице и надеяться, что до этого ничего не изменится) и отправьте это обратно в PHP. С некоторым умным AJAX-модулем вы можете сделать это на одной странице.
Посмотрите на этот вопрос для получения подробной информации о том, как сделать это в javascript.
Если вы хотите определить длину строки текста, используя встроенные шрифты PHP (например, если вы используете imagestring ()), вы можете использовать:
imagefontwidth()
$text = "Your text here"
$fontSize = 5;
$textLength = imagefontwidth($fontSize) * strlen($text);
Если вы не используете встроенные шрифты, используйте imagettfbbox (), как упомянуто выше.
Вы можете использовать PHP GD для визуализации строки как изображения и получения размера результирующего изображения.
Если вы используете это, это должно работать:
list($left,, $right) = imageftbbox( 12, 0, "arial.ttf", "Hello World");
$width = $right - $left;