у меня что то никак не получается русскими буквами писать... на нужном мне сайте проблема то понятно но как решить ? как я понял все функции работают только с кодировкой utf-8 а у меня в файле .htaccess прописаны директивы AddDefaultCharset windows-1251 php_value default_charset "cp1251" без этого почему то сайт показывается в крякозябрах. (это стало необходимо когда на хостинге появился php 5. с 4 не было проблем). и вот теперь инструкции типа .<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> не работают для отдельных страниц.. пиши не пиши... на поддомене, где для всего сайта utf-8 если поставить там все нормуль... (вот бьюсь (не спеша) с новым подводным камнем) // не хочу я целиком на utf 8 уходить , мне не удобно с ней....(Привычка сильная к 1251)
нет. поясни про какие функции речь. это точно лишнее. по формату похоже на кодировку символов в mysql, то конкретно эта переменная среды никакого влияния иметь не будет. проблема может быть в кодировке соединения с базой, а ты, судя по всему, управляешь только кодировкой http. то есть отправляешь данные на страницу ты корректно, а вот добываешь данные из базы не факт что правильно. гуглить "mysql set names" --- Добавлено --- P.S. кодировка 1251 выглядит анахронизмом. но чисто чтобы понять как всё работает, ты конечно можешь избавиться от ошибок. и только потом перейти на UTF-8, lol https://php.ru/forum/threads/pro-kodirovku-i-bazu.56793/
Нет БД тут не причем Весь контент хранится в файлах . (БД есть, но в ней информация о скриптах движка - там всё на латинице и кодировка роли не играет) // этим 2 строчки мне админ хостинга сказал вписать после того как я нему обратился по вопросу- почему все стало крякозябрами...... . переход - не знаю. я уже думал... пришел к выводу, мне будет очень неудобно а это скажется на производительности очень сильно... - пока переучусь привыкну это годы нужны ..... (а ошибки то исправлю . это конечно.. - просто никто никуда не спешит и не рвет и не мечется)
Если у тебя страницы в разных кодировках, вообще отключи отдачу кодировки в заголовке Content-Type. Оставь только в мета-тегах страниц. --- Добавлено --- Но вообще это «вырви мозг». Лучше приведи страницы к одной кодировке.
Нет не в разных. это возникли вот сложности что функция : imagestring () хочет работать только с utf-8.
Пытался применить Код (Text): $str0=iconv('windows-1251', 'utf-8', $str0); но разница лишь в том, что крякозябры разные... прописывал в Код (Text): header("Content-type: image/gif; charset=utf-8"); header("Content-type: image/gif; charset=windows-1251"); на всякий случай совершенно нет разницы... // вот в запасе идейка ... организовать работу скрипта на поддомене, сохранять картинки и использовать их уже на главном сайте.. тут вот надо решить свой подводный камень как бы это сделать в реальном времени, ведь поддомен никто кроме меня не будет посещать --- как и когда скрипт запускать .......... --- Добавлено --- так прошу прощения .... похоже я опять просто туплю дело в том что я веду все тесты а у меня сам файл в кодеровке utf.... (сейчас сделаю и отпишусь)..... Ой есть шанс --- Добавлено --- только что проверил и выключил именно это моментально стало всё крякозябрами а вот строчка как раз AddDefaultCharset windows-1251 ни на что не повлияла когда убрал
Нет.... ничего . не вышло.. Но здесь это уже особенности конфигурации моего движка тут я помощи не прошу... (главное вообще разобрался как работает- за что спасибо ответчикам....)
Писец! Это никак не связано с Content-Type. Почитай описание ф-ции. Шрифт 2 – это встроенный шрифт в кодировке Latin 2. Образов кириллических букв там нет. Можешь хоть до посинения перекодировать текст.
Ура! Вопрос полностью решился!. - Использовал imagettftext вместо imagestring 1 - скачал и подключил arial.ttf 2 - использовал функцию iconv (); для манимапуляций с кодировкой нужного текста. Код (Text): <?php //$font = imageloadfont('arial.gdf'); $font = 'arial.ttf'; $string="работает всё хорошо"; //$string="Картинка РЅР° тексt"; (так тоже работает и без iconv!) $image = imagecreatetruecolor(320, 240); if ($image) { $colorBg = imagecolorallocate($image, 155, 255, 255); imagefill($image, 0, 0, $colorBg); $colorTx = imagecolorallocate($image, 233, 14, 91); $string=iconv('windows-1251', 'utf-8', $string); //imagestring($image, $font, 10, 10, "$string", $colorTx); imagettftext($image, 10, 0, 10, 20, $black, $font, $string."!!" ); header("Content-type: image/png"); imagepng($image); imagedestroy($image); } ?>
Для тех, кто все же отважится использовать imagestring... 1. Взял консольный шрифт из одного нашего проекта (кодировка нестандартная). 2. Преобразовал его в формат, пригодный для использования в imagestring (см. описание imageloadfont). Результат во вложении. 3. Ну и написал демку: PHP: <?php if ($font = imageloadfont(__DIR__.'/unpacked.bin')) { if ($image = imagecreate(32*8, 7*16)) { imagecolorallocate($image, 0, 0, 0); $color = imagecolorallocate($image, 255, 255, 255); for ($i=32, $y=0; $i<256; $i+=32, $y+=16) { imagestring($image, $font, 0, $y, implode(range(chr($i), chr($i+31))), $color); } header('Content-Type: image/png'); imagepng($image); imagedestroy($image); exit; } else error(503); } else error(503); P.S. Чтобы выводить ANSI-строки, используйте шрифт в соотв. кодировке, либо ф-цию преобразования строки в показанную консольную кодировку.
А я между тем нашел, что о чем еще поговорить в эту тему.. вопрос второстепенной важности... Как оказалось отображаться то все теперь хорошо отображается... (коректное наведение красоты это уже проще - почитаю посижу потыкаю по возможностям функций библиотеки .... ) Но когда мы наводим курсор на эту картинку и: 1) делаем сохранить как... - он предлагает сохранить как image.php (по имени того что указано в параметре src тега <img) 2) аналогично выбираем из меню - сохранить url картинки и получаем тоже самое - ссылку на файл images.php может подскажете чего почитать с чем разобраться ( набравшись наглости скажу - сам пока не думал, не решал спрашиваю просто для ускорения в вопросе разбирательства.. (сейчас чуть более важные задачи имеются... (там вопросов нет просто делать делать делать (на 3-5 дней по расчетам).. ) )) --- Добавлено --- @miketomlin, как я понял там имеются более привлекательные возможности... можно свой шрифт сделать и вообще не быть зависимым от кодировки.... И вот получается так что сколько я времени потратил на разбирательство с этими кодировками так было бы оптимальнее
Ты же сам указал в ссылке имя скрипта (с расширением .php). В моей демке все норм. сохраняет --- Добавлено --- Потому что скрипт обработки (файл или функция) и адрес, при запросе по которому скрипт запускается, – это разные вещи. Если ничего умнее придумать не сможешь, сделай рерайт в конфиге Web-сервера
@miketomlin, это то ясно. вот и вотпрос то - А как я туда вместо php gif Или jpg подсунуть то ... ????? с лёту что то пока не знаю... ага..если файл переименовать в .gif уже будет отличная полноценная картинко это уже хорошо @miketomlin - это решаемо! это вопрос не особой важности... просто если кто уже знает подскажет - облегчит потуги и ускорить
Какой файл? Если ты переименуешь файл скрипта, изменив расширение на .gif и т.п., он перестанет исполняться. Можно попробовать сделать так: image.php.gif, но это идиотизм. Делай рерайт, как я выше написал.
прошу прощения под ререйтом имеет в виду редирект ? тут проще если даже не выйдет на лету - но я думаю вопрос решаем и довольно просто - это я просто возможности не знаю и нужно почитать то есть вариант картинку делает один скрипт а открывает ее другой.... я пока еще даже не читал как результат работы сохранить... (то что сегодня получилось отобразить русский текст это для меня огромный шаг вперед и когда я не знал причины ПОЧЕМУ не работало --- над которым я зависал недели 3.... остальное должно быть проще ..... .. . )
Внутренний редирект. --- Добавлено --- Лично я просто установил связь между адресом (точнее слагом sansfont.png) и модулем-обработчиком в рамках движка. Ты же типа Web-студия. Должен знать, как работают современные движки.
ха-ха-ха-ха-ха мне сказали что если я не знаю, что такое карусель то я не веб-студия. когда спрашивали не знал.... потом узнал говорю что вы мозг компосите - слайдер! Но - не помогло - квалификация не была доказана. нет - я не знаю, как работают чужие движки. (всем угодить не возможно и даже не стараюсь. я даже от интернет магазов отказываюсь за 50-70, а сижу на мелких за 15-30.) Почему? вот ты ему сделаешь за эти "50" сдашь все хорошо.. но месяца через 3-4 начнется - подправь вот это , еще вот так было лучше там дел на 100 рублей мелочи.. .... (именно по прецедентам подобным и отказался делать сложные проекты) .. . в общем ..... ненадонам такое.. (им на 100 рублей а мне через полгода вспоминать индивидуальные алгоритмы чтобы эту вставку сделать... - что либо доказывать что это тяжело и это 100р оно по трудоемкости как в 3000 выливается бесполезно!. ) Это ..... тут сеошники о релевантных поисковых запросах для выдачи поговаривают, а я не понимаю это КАК? так что никакая я не веб-студия - так шарага на мелких подработках перебивающаяся....
@anadonam, что ни разу не торкнуло вбить в поисковую строку «MVC», «роутинг» и т.п.? --- Добавлено --- Ладно, это оффтоп. Ты в очередной раз меня шокировал Спок. ночи.
@miketomlin НЕА вот в данный момент вбиваю туда JSON.. - решил начать с этой структурой данных работать вместо csv (explode (1#2#3#4#5#)), расчитал вроде алгоритмы должны быть проще...... (вопросы по преобразование данных в эту структуру и парсингу (для чистки) этой структуры все решены - сижу реализую...... ) (офтоп - да ладно - главное же чт форум живет ) вот такое делаю - тут проще показать https://anonado.ru/resurs/kiip#Efb_WJPPm30 чуть позже (пока просто нет времени оно тратится на кодинг - но это не бесконеный процесс - думаю еще полгодика и всё нужное напишу ...... ) будут свои ролики и описание этих роликов я буду хранить в структуре json и со своего канала на YT в произвольном порядке отображать... я сначало думаk прям парсить .... Но медленно очень всё динамика не получается из за большого времени работы скриптов...... проще свои файлы с данными сделать...... а MVC (Не знаю что это) не вбивал пока еще....
тест с видео уже проводил вот такое искусство показывать буду сильно то не судите это мой самый лучший ролик из первых трех дальше планируется лучше и качественней ну а чо вот извиняюсь за выражение вот это Г (я сам знаю что Г) но на прошедший новый год набрало 130 просмотров а страница сайта на котором стоит этот ролик - была посещена 350 раз.. то есть тест дал положительный результат - будем развивать -улучшать ps/ а на заказ - да там нет ниче интересного - там скучные шаблонные люди.. - ""мы вам предлагаеи наше"" вот картинка сапогоф от модгного кутюрье по низкой цене со скидкой чтобы вы купили""...тьфу .... скукатень и дрибедень и как ты им картинку крутую в шапку не лепи c кнопками яркими - сапоги эти со 79% скидкой никому не сдалися...
Рекомендую глянуть в сторону Imagick. Почему-то гуру данного портала немного умолчали об этом. Там намного больше возможностей по работе с изображениями. В тч конвертацией из одного формата в другой. Например, кусок из создания капчи одного из проектов: А вот преобразование первой страницы pdf в jpg: PHP: function genPdfThumbnail($source, $target) { $im = new Imagick(); $im->readimage($source."[0]"); $im->setimageformat("jpeg"); $im->setImageCompression(\Imagick::COMPRESSION_JPEG); $im->setImageCompressionQuality(10); $im->writeimage($target); $im->clear(); $im->destroy(); } Намного удобнее работать, чем штатными средствами)