|
|
|
| Привет, друзья:) Нужна ваша помощь. Была задача постранично выводить содержимое файла в формате TXT на HTML-страницу. Цель достигнута, всё работает, но содержимое текстовика на кириллице (windows-1251), а страница в кодировке UTF-8. Естественно, в результате видим кракозябры. :( Как "на лету" перекодировать выводимый текст? Куда и какую функцию вставить? Вот код страницы:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Title here!</title>
</head>
<body>
<?php
$array = file('./mail.txt');
$count = count($array);
$list = 10;
if (empty($_GET['page'])) {
$page = 1;
} else {
$page = (int) $_GET['page'];
}
$j = ($count-1)-(($page-1)*$list);
$i = $j-$list;
for(; $i<$j && $j>=0; $j--) {
echo $array[$j];
}
echo '<font color="#ffffff" size="5">Страницы: </font>'."\n";
$all = ceil($count/$list);
for ($i=1;$i<=$all;$i++) {
if ($page==$i) {
echo '<strong><font color="#ffffff">'.$i.'</font></strong> ';
} else {
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> '."\n";
}
}
?>
</body>
</html>
Буду признателен за любую помощь. | |
|
|
|
|
|
|
|
для: Saprankov
(31.10.2008 в 16:27)
| | И кроме этого "текстовика" ничего более на странице? Тогда проще указать кодировку 1251. А если перекодировать, то iconv(); | |
|
|
|
|
|
|
|
для: sim5
(31.10.2008 в 16:35)
| | Совершенно верно, больше ничего :) Кодировку win-1251 указать не могу, ибо данная кодировка не воспринимается большинством мобильников, а у меня сайт гибридный - и для компов и для телефонов. С iconv экспериментировал, безрезультатно пока. :( Укажите кусок кода, куда её вставить, пожалуйста. | |
|
|
|
|
|
|
|
для: Saprankov
(31.10.2008 в 16:41)
| | А чего там эксперементировать:
iconv("windows-1251","UTF-8",$имя переменной которая содержит текст)
Так понятно?) | |
|
|
|
|
|
|
|
для: sim5
(31.10.2008 в 16:47)
| | Понятно больше половины :) Сэнкс, отпишусь. | |
|
|
|
|
|
|
|
для: Saprankov
(31.10.2008 в 16:49)
| | Насколько я понимаю, iconv нужно использовать уже при показе, а не при обработке текста?
Не знаю куда запихать функцию перекодировки. Покажите прямо в коде, пожалуйста. Новичок я, не пинайте... | |
|
|
|
|
|
|
|
для: Saprankov
(31.10.2008 в 17:52)
| | sim5 , спасибо, уже разобрался :))) | |
|
|
|
|
|
|
|
для: Saprankov
(31.10.2008 в 17:52)
| | Ну, например, вот здесь:
echo '<font color="#ffffff" size="5">' . iconv("windows-1251","UTF-8","Страницы") . ': </font>'."\n";
Далее у вас выводится переменная $i, что это у вас не знаю, похоже на навигатор - для нее замените "Страницы" на $i. Где у вас сам текст выводится что-то не понятно, кроме как текста в ссылках. Обрамляйте код свой при вставке в форум тегами [сode][/сode] с указанием РНР тегов, код ваш будет подсвечен, его будет легче читать. | |
|
|
|
|
|
|
|
для: sim5
(31.10.2008 в 18:14)
| | Ага, понял. Вот решение моей задачи (может, кому пригодится):
<?php
$array = file('./mail.txt'); //загоняем текстовик в массив
$count = count($array); //считаем строки
$list = 10;
if (empty($_GET['page'])) {
$page = 1;
} else {
$page = (int) $_GET['page'];
}
$j = ($count-1)-(($page-1)*$list);
$i = $j-$list;
for(; $i<$j && $j>=0; $j--) {
echo iconv("windows-1251","UTF-8",$array[$j]); //выводим перекодированные строки
}
echo '<font color="#ffffff" size="3">Страница№: </font>'."\n";
$all = ceil($count/$list);
for ($i=1;$i<=$all;$i++) {
if ($page==$i) {
echo '<strong><font color="#ffffff">'.$i.'</font></strong> ';
} else {
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> '."\n";
}
}
?>
|
| |
|
|
|