Длина строки в пикселях

grem

Guest
Длина строки в пикселях

Помоги, люди добрые.

Как вычислить длину строки в пикселях???

strlen() - возвращает длину строки в символах, а мне бы в пикселях.
 

Demiurg

Guest
Умножить длину строки на количество пикселей в одном символе.
 

grem

Guest
Originally posted by Demiurg
Умножить длину строки на количество пикселей в одном символе.
Дак ведь каждый символ имеет разное количество пикселей.

У меня шрифт Arial, это мне нужно знать сколько пикселей занимает конкретный символ этого шрифта???

А по другому нельзя, может есть готовая функция PHP?

Или еще способ выдернуть длину строки в пикселях?
 

Demiurg

Guest
может ты еще скажешь, куда ты выводишь свои пиксели ?
 

Tonn

Новичок
Кстати, я тоже впал в ступор, пытаясь придумать соответствующую задачу...
 

grem

Guest
Originally posted by Demiurg
может ты еще скажешь, куда ты выводишь свои пиксели ?
Скажу, ток это роли не сыграет.

Пиксели мне нужны для размера DIV'а который используется в JAVASCRIPT'е для потроения меню. Скрипт уже готовый, только остается подставить значение в пикселях. DIV заполняется из базы данных.

Блин, мне всего-то надо узнать длину строки в пикселях :( и нигде не могу найти ответа, ну помогите, плиз, не издевайтесь пожалуйста, я уже и так замучен.
 

Tonn

Новичок
ок. разместить по краям строки 1-пиксельные картинки. после чего из pixelleft правой вычесть pixelleft левой. :)
 

Demiurg

Guest
Делай свой div заведомо больше длинны текста, и все.
 

grem

Guest
Originally posted by Demiurg
Делай свой div заведомо больше длинны текста, и все.
Я не могу знать заведомо какая длина текста, т.к. пункты меню добавляются из базы данных, которая в свою очередь заполняется пользователем через форму.
 

Crazy

Developer
grem, слушай сюда:

1. PHP работает на сервере.
2. Тексты выводит и определяет их размеры --- браузер, работающий на клиенте.

Соответственно, в PHP'шном скрипте ты не можешь замерить эти размеры и вообще не должен хотеть их измерять.
 

Tonn

Новичок
Можно пользователю вывести диалог типа: "Влезает ли текст в меню? "
 

grem

Guest
Originally posted by Crazy
grem, слушай сюда:

1. PHP работает на сервере.
2. Тексты выводит и определяет их размеры --- браузер, работающий на клиенте.

Соответственно, в PHP'шном скрипте ты не можешь замерить эти размеры и вообще не должен хотеть их измерять.
Совершенно не согласен.
Если размер относительный, то Да.

Но я задаю абсолютный размер. Шрифт Arial и размер 12. На любом клиенте в этом случае отобразится Шрифт Arial и размер 12. Факт!!! Можешь в браузере менять шрифт на огромный, средний, мелкий, никаких изменений не будет, т.к. размер задан абсолютный.
 

Demiurg

Guest
а если пользователь введет что нибудь типа:
ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
ты бужешь такой же div делать ? а то что дизайн поедит тебя не смущает ?
 

Crazy

Developer
grem, на самом деле, размер будет определяться метриками установленного у клиента шрифта с именем "Arial" с указанным пиксельным размером. Ты уверен, что на Маке тот же arial.ttf, что и в виндах? :)

Причем никто не обещал, что во всех браузерах он будет точно совпадать.

Кроме размера собственно букв есть куча других параметров, таких как межбуквенные и межсловные интервалы, которые, даже если ты догадался их явно задать (вероятность 0.01%), не обязаны быть отработаны браузерами идентично.
 

grem

Guest
Originally posted by Demiurg
а если пользователь введет что нибудь типа:
ЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖЖ
ты бужешь такой же div делать ? а то что дизайн поедит тебя не смущает ?
Ну этот пользователь буду Я, да к тому же можно поставить ограничение на вводимое количество символов, вообщем эта проблема решаема.

Короче в PHP этот вопрос не решить, да? :rolleyes: Жаль.

Может подскажете альтернативный способ решения этой проблемы. Заранее благодарен всем участвующим!
 

Demiurg

Guest
Делай свой div заведомо больше длинны текста, и все.

ты сам себе не доверяешь ?
 
Сверху