PHP strlen () и ширина строки - PullRequest
0 голосов
/ 12 января 2012

Не уверен, есть ли функция php, которая может помочь определить это.

У меня есть несколько строк с переменными символами.Моя проблема в том, какова длина строки, а не сколько символов.

$str1 = '123456789';
$str2 = 'akIOuNBGH';

Оба имеют 9 символов.Однако второе в браузере немного длиннее из-за более широких символов.

В конечном итоге я хотел бы добавить «.............» серию точек последве строки, но поскольку вторая и первая не имеют одинаковую ширину, однородность отключена.

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

Ответы [ 2 ]

1 голос
/ 12 января 2012

Ширина зависит от типа шрифта, который вы используете на стороне клиента для представления этих строк.Для некоторых шрифтов (не знаю точно, какой именно, но я думаю, например, Courier), ширина прямо пропорциональна количеству символов, так что будет работать простой отступ ваших строк.Для других шрифтов он не будет работать и будет зависеть от того, как его отображают браузеры.Если вы пытаетесь выровнять свои строки на стороне сервера, вы делаете это наихудшим из возможных способов.Попробуйте выровнять их с помощью CSS.

0 голосов
/ 12 января 2012

Как vucetica упомянул моноширинный шрифты, такие как Courier или Courier New, может помочь вам заархивировать равный интервал между символами.

Также, если вы хотите сделатьубедитесь, что все строки имеют одинаковую длину, например 32 символа, которые вы можете использовать sprintf метод

$string = '1234567890';
$string = sprintf("%'.-32s", $string);
var_dump($string); //string(32) "1234567890......................"

Дополнительные примеры синтаксиса можно найти в документации PERL , 90% из которых работает в php

...