- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть php-скриптик, который заменяет в PDF файле подстроку. Если подстрока на английском, то всё работает. На русском - выдаёт кракозябы. Пытался сделать фразе перекодировку iconv("WINDOWS-1251", "UTF-8", $name) - не помогло. В чём кривые руки?
$tmp = replace_name('Слава Шевцов');
function replace_name($name)
{
$date = date( "F d, Y" );
// open our template file
$filename = "PHPCertification.pdf";
$fp = fopen ( $filename, "r" );
//read our template into a variable
$output = fread( $fp, filesize( $filename ) );
fclose ( $fp );
$score = '10';
// replace the place holders in the template with our data
$output = pdf_replace( "<<NAME>>", strtoupper( $name ), $output );
$output = pdf_replace( "<<Name>>", $name, $output );
$output = pdf_replace( "<<score>>", $score, $output );
$output = pdf_replace( "<<mm/dd/yyyy>>", $date, $output );
// send the generated document to the browser
return $output;
}
function pdf_replace( $pattern, $replacement, $string )
{
$len = strlen( $pattern );
$regexp = '';
for ( $i = 0; $i<$len; $i++ )
{
$regexp .= $pattern[$i];
if ($i<$len-1)
$regexp .= "(\)\-{0,1}[0-9]*\(){0,1}";
}
return ereg_replace ( $regexp, $replacement, $string );
}
Дайте пример pdf чтоб побаловаться
bukachuk, прикрепил к первому сообщению файлик.
У Вас сам документ создан в кодировке, не поддерживающей кириллицу. Какой прогой создавали эту PDF-ку?
Может имеет смысл воспользоваться встроенными средствами для создания PDF на-лету? (http://ru2.php.net/manual/ru/book.pdf.php)
aleksey_php, спасибо. И bukachuk спасибо за такое же предположение, высказанное в личке. PDF-ка взята тестовая из примера, откуда я выдрал и переписал упомянутый выше код. Наверное, там и в самом деле дело в кодировке самого шаблона.
За ссылку спасибо, но нужно так, как есть - заменой подстрок. Реальный документ сложно собирать.
какая кодировка у пдф?
пробовали setlocale("ru_RU.кодировка") ?
Сам много мучался с это функцией.
http://ru2.php.net/manual/ru/function.iconv.php
Почитайте комментарии. Должно помочь.
Слава Шевцов, поковырял я эту пдфку. Проблема в том, что <<NAME>>, <<score>> и <<mm/dd/yyyy>> в ней набраны шрифтом Palatino Roman. Ну нет в этом шрифте русских символов! В принципе, можно изменить шрифт на какой-нибудь, содержащий кириллицу, хоть на Times New Roman (Cyr) — тогда все должно заработать как хочется.
Polimer, спасибо. По ходу выяснил, что такая замена при длинной строке уведёт текст за край документа и пришлось заказывать сборку документа целиком :о(
Лучше использовать класс FPDF для генерации, проблем с кодировками не будет