PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (23): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 340
android Отправлено: 14 Марта, 2015 - 11:15:33 • Тема: Не получается получить ширину блока • Форум: JavaScript & VBScript

Ответов: 3
Просмотров: 1837
Добрый день, не могу понять как можно получить ширину блока div, не вставляя его в шаблон. Но блок имеет свой ксс который должен учитываться при расчете ширины блока...

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var html = '<div class="testblock">' + $('enter:selected').text() + '</div>';
  3. width = $(html).width();
  4. alert(width);
  5.  


CODE (html):
скопировать код в буфер обмена
  1.  
  2. <style>
  3. .testblock {
  4.         font: 12px/26px Arial, Verdana, Tahoma;
  5.         color: #4b4b4b;
  6.         padding: 0 32px 0 8px;
  7. }
  8. </style>
  9.  


Конечно я бы мог вывести в шаблон и получить данные, но так как это динамическая генерация кода в цикле, поэтому я не могу так сделать...

Я думал узнавать кол-во символов у текста + 32px + 8px, только одна проблема, размер шрифта...
(Добавление)
Посмотрел в Photoshop ширину буквы, она плавающая 7-6px, да и это бдсм получается... В каждом браузере свой обработчик шрифта
android Отправлено: 23 Января, 2015 - 21:41:03 • Тема: Нужен человек который разбирается в imagick php • Форум: FreeLance

Ответов: 3
Просмотров: 1013
В лс, актуально!
android Отправлено: 23 Января, 2015 - 05:14:48 • Тема: Нужен человек который разбирается в imagick php • Форум: FreeLance

Ответов: 3
Просмотров: 1013
Ищу такого для написания небольшого скрипта, оплата хорошая!
android Отправлено: 21 Января, 2015 - 01:13:44 • Тема: Размытие текста imagick • Форум: Графика в PHP

Ответов: 0
Просмотров: 1019
Доброй ночи! Пожалуйста подскажите как сделать размытие текста что бы он получился вот такой:


А у меня получается строгий:


Мой код:

PHP:
скопировать код в буфер обмена
  1.  
  2. $_string = 'text';
  3.  
  4. $canvas = new Imagick();
  5. $draw = new ImagickDraw();
  6.  
  7. $fontsize = 9+4;
  8.  
  9. $color = new ImagickPixel('#df0000');
  10.  
  11. $draw->setFont('font/arial.ttf');
  12. $draw->setFontSize($fontsize);
  13. $draw->setFillColor($color);
  14.  
  15.  
  16. $metrics = $canvas->queryFontMetrics($draw, $_string);
  17.  
  18. $draw->annotation(0, $metrics['ascender'], $_string);
  19. $canvas->newImage($width, $metrics['textHeight'], 'none');
  20.  
  21. $canvas->setImageFormat('png');
  22. $canvas->drawImage($draw);
  23.  
  24. header("Content-Type: image/png");
  25. echo $canvas;
  26.  
android Отправлено: 20 Января, 2015 - 23:49:54 • Тема: Как сделать подобный скрипт? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 345
Жаль что никто не знает(
android Отправлено: 16 Января, 2015 - 21:01:15 • Тема: Как сделать подобный скрипт? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 345
В общем имеется сайт, на нем есть скрипт который изменяет масштаб картинки (на котором изображен произвольный текст) я не понимаю как он работает, может светлые умы подскажут? Улыбка

Варианты с разным масштабом:
1) http://easy[dot]uprinting[dot]com/getTex[dot][dot][dot]5&density=96
2) http://easy[dot]uprinting[dot]com/getTex[dot][dot][dot]&density=120
3) http://easy[dot]uprinting[dot]com/getTex[dot][dot][dot]&density=150

Вот что я нахамутал Растерялся :
PHP:
скопировать код в буфер обмена
  1.  
  2. $font = 'arial.ttf';
  3.  
  4.  
  5. $text = urldecode('Test%20%20lost%20big%20message%20');
  6.  
  7.        
  8. $fontsize = 9;
  9. $density = 96;
  10. $_width = 2.45;
  11.  
  12. $canvas = new Imagick();
  13. $draw = new ImagickDraw();
  14.  
  15. if( $density < 2 )
  16. {
  17.         $size = 2;
  18. }
  19. else
  20. {
  21.         $size = $_width;
  22. }
  23.  
  24. $draw->setFont($font);
  25. $draw->setFontSize($fontsize*$size);
  26.  
  27. $width = round($_width*$density);
  28.  
  29. ///////
  30. $_string = '';
  31. $data = explode(' ', $text);
  32. foreach( $data as $word )
  33. {
  34.         $string = $_string . ' ' . $word;
  35.         $metrics = $canvas->queryFontMetrics($draw, $string);
  36.         if( $metrics['textWidth'] > $width )
  37.         {
  38.                 $_string .= $_string ? "\n" . $word : $word;
  39.         }
  40.         else
  41.         {
  42.                 $_string .= $_string ? ' ' . $word : $word;
  43.         }
  44. }
  45. ///////
  46.  
  47. $metrics = $canvas->queryFontMetrics($draw, $_string);
  48.  
  49. $draw->annotation(0, $metrics['ascender'], $_string);
  50.  
  51. $canvas->newImage($width, $metrics['textHeight'], 'none');
  52. $canvas->setImageFormat('png');
  53. $canvas->drawImage($draw);
  54.  
  55. //$canvas->resizeimage($width, $metrics['textHeight'], 20, 0.9, false);
  56.  
  57.  
  58. header("Content-Type: image/png");
  59. echo $canvas;
  60.  


Не могу понять принцип (
(Добавление)
Хочу заметить, вместе с масштабом меняется и размер шрифта
android Отправлено: 14 Января, 2015 - 16:01:25 • Тема: Прозрачный фон у текста? • Форум: Графика в PHP

Ответов: 1
Просмотров: 1801
Добрый день, подскажите пожалуйста ответы на пару вопросов:
1) Почему не срабатывает прозрачный фон?
2) Правильно ли я определяю высоту полотна по размеру текста и кол-ва его переносов?
3) Как сделать межстрочный, межбуквенный интервал? (не разбивая весь текст по буквам)

PHP:
скопировать код в буфер обмена
  1.  
  2. header('Content-type: image/png');
  3.  
  4. $width = 47; // ширина
  5. $density = 5.36; // масштаб
  6.  
  7. $color = '000000'; // Цвет текста
  8. $size  = 10; // Размер текста в pt
  9.  
  10. $font = 'fonts/roboto/roboto-regular.ttf';
  11.  
  12.  
  13. $text = "раз раз
  14. переход
  15. еще один";
  16.  
  17. $bbox = imageTTFbBox($size, 0, $font, $text);
  18.  
  19. $width = round($width*$density);
  20.  
  21. if( $bbox[1] == -1 ) {
  22.         $height = $size + 7; // если одна строчка то высота = размеру шрифта + отступ снизу
  23. }
  24. else
  25. {
  26.         $height = $bbox[1] + $size + 7; // если несколько строк то общая высота + (размер шрифта + отступ, почему-то последняя строка в $bbox не засчитывается, поэтому добавляю сам)
  27. }
  28.  
  29. $img = imageCreateTrueColor($width, $height); // Создаем полотно
  30.  
  31. imageFill($img, 0, 0, '0xffffff'); // заливаем
  32. imageColorTransparent($img, '0x000000'); // устанавливаем прозрачность?
  33.  
  34. $y = $size + 4; // устанавливаем отступ от верхней границы (если указать 0, то почему-то текст находится на y: -10  ::huh.gif:: )
  35.  
  36. imageTTFtext($img, $size, 0, 0, $y, '0x' . $color, $font, $text);
  37.  
  38. imagePNG($img);
  39.  

(Добавление)
За последующие ответы большое спасибо!
(Добавление)
С прозрачностью решил так:

PHP:
скопировать код в буфер обмена
  1. imageSaveAlpha($img, true);
  2.  
  3. $transPng = imageColorallocateAlpha($img, 0, 0, 0, 127);       
  4. imageFill($img, 0, 0, $transPng);
android Отправлено: 27 Сентября, 2014 - 12:41:52 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
И да, у него глупый не измеряемый обратчик ошибок
android Отправлено: 26 Сентября, 2014 - 23:11:23 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
Tato, если бы вы прочитали от начала до конца тему, то увидели бы что мне от шаблонизатора нужно только : переменные в шаблоне, условные операторы if else endif

А вот блоки, инклюбы, запуск кода пхп и од мне совершенно не нужно!
android Отправлено: 25 Сентября, 2014 - 17:33:45 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
OrmaJever да скорее всего
RickMan масса ненужных вещей
android Отправлено: 25 Сентября, 2014 - 15:48:32 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
OrmaJever обрезание текста это так, пример в основном. Будут использоваться собственные функции

Лучше если можете поясните про кэширование, на каком этапе нужно кэшировать и что куда выводить?
(Добавление)
DelphinPRO и если знаете то подскажите как регулярку сделать так что бы пропускало только такие комбинации:

$name_var
! $name_var
$name_var1 != $name_var2
$name_var1 > $name_var2
$name_var1 < $name_var

а так же группирование ! $name_var or $num = 1

Просто немного не понятно как сделаны условные операторы в ucoz, там вроде стандартный if else endif но пропускает только свои переменные и пару проверок по типу как я выше написал


Что вы думаете об этом?
Мне кажется нужно брать содержимое и проверять это по шаблону как то... но такой вариант будет нести в себе большой массив с проверочными регулярками Нахмурился

Может есть какой-то способ запретить использование функций внутри условного оператора?
android Отправлено: 25 Сентября, 2014 - 12:55:32 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
OrmaJever господи!!!
Объясню еще раз, слушайте внимательно:

Есть система управления сайтами, в ней может сделать себе сайт любой желающий, он создает сайт, прикрепляет домен. От нас панель управления сайтом и его размещение (в автоматическом порядке) в ПУ запрещено любое наличие php кода. Если владелец сайта внедрит себе xss, сломает дизайн - это его право.

Надеюсь теперь я расставил все по своим местам Улыбка
android Отправлено: 25 Сентября, 2014 - 11:53:00 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
OrmaJever пишет:
А без голого php это равносильно уничтожению всей клиентской части cms. В итоге cms так же не будет работать.


Если все разрешенные функции проверять на правильность то нет Улыбка В этом случае риск минимален, да и если человек накосячит отображаться это будет только на его сайте
android Отправлено: 25 Сентября, 2014 - 09:36:50 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
OrmaJever а зачем вам ошибка? если я разрешил пользователям в шаблоне писать substr, var_dump..... в таком виде {{ substr() }} то если они передают больше чем разрешено переменных, то выводится ошибка вызванной функции в нашем случае: substr($var1, $var2, $var3, $var4) упс у вас лишний аргумент $var4
(Добавление)
OrmaJever пишет:
и в итоге вопрос пришёл к моему второму комментарию )))


Разрешить использование голого php в шаблонах простому пользователю - равносильно уничтожению всей серверной части cms
android Отправлено: 24 Сентября, 2014 - 17:11:31 • Тема: Как запустить функцию в шаблоне? • Форум: Вопросы новичков

Ответов: 25
Просмотров: 1229
OrmaJever спасибо, частично вопрос решен. Но вот если запустить из строки substr и указать более 3 параметров то выводится ошибка которую я не могу перехватить исключением....


DelphinPRO незнаю с правильной стороны я начал его делать или нет, но у меня собранный шаблон не записывается в отдельный файл.

Все по такому принципу:
Загрузили шаблон -> указали что в нем нужно изменить (на серверном уровне) -> компиляция с проверкой на существование данных которые подлежат замене в исходном шаблоне -> вывод на экран пользователя

Получается как вы поняли из вышесказанного, содержимое шаблона я записываю в переменную, а потом уже с ним работаю.

Как тут можно оптимизировать? Подскажите, если конечно вас не затруднит Улыбка

Страниц (23): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB