Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: кодировка

 PHP.SU

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


 Страниц (2): [1] 2 »   

> Без описания
mihai
Отправлено: 11 Декабря, 2009 - 15:30:13
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




Господа
помогите
есть гостевая книга
НО
проблема с кодировкой
запись в CSVfile.txt
происходит нормально
но
на хостнге английский текст выводит а русский текст не выводит вообще
я понимаю что это проблема с кодировокой

перепробовал не как не получается

iconv()
mb_convert_encoding()
convert_cyr_string()

подскжите как и что вставить и главное куда.


PHP:
скопировать код в буфер обмена
  1.  
  2. if(!$_GET['i'])
  3. {
  4. $i=1;
  5. }
  6. else
  7. {
  8. $i=$_GET[i];
  9. }
  10. $chislo=$chisloconfig;
  11. include "func.php";
  12. $csv="CSVfile.txt";
  13. $m=read($csv, "|");
  14.      
  15. echo "<br><br><br>";
  16.  
  17. if($m!=NULL)
  18. {
  19. krsort($m);
  20. foreach($m as $stroka)
  21. {
  22. $n++;
  23. if(($n>$i*$chislo-$chislo)&&($n<=$i*$chislo))
  24. {
  25.  
  26. $text = "$stroka[5]";
  27. $newtext = wordwrap($text, 20, " ", 1);
  28. echo "<b>&nbsp;$stroka[1]</b>&nbsp;&nbsp;&nbsp;$stroka[2]<br>
  29.      <b>e-mail:&nbsp;</b><a href='mailto:$stroka[3]' target='_blank'>$stroka[3]</a>
  30.      <b>сайт:&nbsp;</b><a href='http://$stroka[4]' target='_blank'>$stroka[4]</a><br>
  31.      <table border='1'bordercolor='#000000' width='$colsconfiga' height='$rowsconfiga' bgcolor='$tbcolor'><tr><td valign='top'>$newtext</td></tr><table><br><br>";
  32.  
  33. }
  34. }
  35. echo "Колличество записей: $n<br>";
  36. }
  37. echo "<center><p>";
  38.  
  39.  
  40.  
  41. for($k=1; $k<=$n/$chislo+1; $k++)
  42. {
  43. if($k==$i)
  44. {
  45. echo "<b>$k</b>";
  46. }
  47. else
  48. {
  49. echo "<a href='guest.php?i=$k'><b>$k</b></a>";
  50. }
  51. }
  52. echo "</p></center>";
  53.  
  54.  
 
 Top
Phantik
Отправлено: 11 Декабря, 2009 - 15:40:55
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




В какой кодировке вы сохраняете сам скрипт? Заголовок с какой кодировкой вы посылаете в браузер?
 
 Top
mihai
Отправлено: 11 Декабря, 2009 - 17:13:23
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<link rel="shortcut icon" href="icon/favicon.ico">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
 
 Top
Phantik
Отправлено: 11 Декабря, 2009 - 17:31:49
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




1) Вы код пишете в каком-то редакторе. Проверьте в настройках в какой точно кодировке вы сохраняете ваш скрипт в файл. Все файлы сайта сохраните в одной и той же кодировке.

2) Если ваш скрипт или сервер присылает заголовок кодировки, то тег
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
не имеет никакого значения.

вставьте в начало ваших php скриптов текст
PHP:
скопировать код в буфер обмена
  1. header("Content-Type: text/html; charset=utf-8");

если вы сохранили скрипты в кодировке utf-8

либо
PHP:
скопировать код в буфер обмена
  1. header("Content-Type: text/html; charset=windows-1251");

если вы сохранили скрипты в кодировке windows-1251

(Отредактировано автором: 11 Декабря, 2009 - 17:32:31)

 
 Top
mihai
Отправлено: 11 Декабря, 2009 - 17:49:42
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




я пользуюсь Notepad

сделал как вы сказали
в первом случае исказился текст всего сайта

во вторм случае
ни каких изменений
 
 Top
ALEN
Отправлено: 11 Декабря, 2009 - 19:19:56
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




mihai
Используйте не notepad, а notepad2 - и сохраняйте в обычном utf-8.
 
 Top
Phantik
Отправлено: 11 Декабря, 2009 - 19:51:27
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




mihai пишет:
я пользуюсь Notepad

сделал как вы сказали
в первом случае исказился текст всего сайта

во вторм случае
ни каких изменений


Нету никаких вторых случаев, либо кодировка одна либо вторая. В какой файл сохраняете, соответствующий заголовок шлете.
 
 Top
mihai
Отправлено: 11 Декабря, 2009 - 20:13:46
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




у меня Notepade
в настройках стоит
UTF - 8


а на сайте
САЙТ НЕ МОЙ
charset=windows-1251">

так вот когда я вставляю в скрипт
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Content-Type: text/html; charset=utf-8")
  3.  



текст самого сайта искажается


так вот когда я вставляю в скрипт
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Content-Type: text/html; charset=windows-1251")
  3.  


вообще ничего не меняется

(Отредактировано автором: 11 Декабря, 2009 - 20:16:07)

 
 Top
Phantik
Отправлено: 11 Декабря, 2009 - 20:33:09
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Сайт, это набор страниц. Каждая отдельная страница сохранена в определенной кодировке. Перед выводом любой страницы в браузер, надо сообщить браузеру кодировку, посылкой http заголовка. В PHP это делается с помощью функции
header("Content-Type: text/html; charset=windows-1251"); если страница сохранена в
wondows-1251 или
header("Content-Type: text/html; charset=utf-8"); если в utf-8

И все страницы сайта желательно делать в одной кодировке. И на каждой странице надо отправлять заголовок кодировки.


Есть еще один момент. Некоторые "умные" хостеры считают своей обязанностью перекодировать страницы в "правильную", по их мнению кодировку а так же переписывать заголовки кодировок. Я например пользую majordomo.ru и он этим грешит. Правда дает возможность это менять из под своего аккаунта.

Так вот если вы сохранили в utf-8 страницу и отправили соответствующий заголовок кодировки, а в результате всеравно показываются иероглифы, то надо смотреть какой заголовок пришел браузеру. Тот который вы посылали или другой? Посмотреть это можно с помощью например аддона к фаирфоксу http live headers.
 
 Top
mihai
Отправлено: 11 Декабря, 2009 - 21:15:59
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




что это такое

PHP:
скопировать код в буфер обмена
  1. аддона к фаирфоксу http live headers.
 
 Top
Phantik
Отправлено: 11 Декабря, 2009 - 21:34:17
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




дополнительная надстройка над браузером FireFox, которая позволяет смотреть заголовки, которыми обмениваются браузер и вебсервер.
 
 Top
mihai
Отправлено: 12 Декабря, 2009 - 20:25:19
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




Господа программисты помагите.
формулирую проблему ещё раз

Есть скрипт гостевой книги,
на локалке всё работает хорошо,

работаю в Notepade
сохранил все файлы UTF-8

Format - Convert UTF-8

при открытии файла в Notepade

показывает

Encode in UTF-8

НО

НА ХОСТИНГЕ

русский текст вообще не отображается
написал хостеру
хостер говорит
что сайт в UTF-8
а
что у меня запись в CSVfile.txt
произведена
в windows-1251

ЧТО ДЕЛАТЬ
как сделать чтобы русский текст отображался

---------
вот код
формируем строку

ниже скрипт записи "blok.php";

PHP:
скопировать код в буфер обмена
  1.  
  2. $strok="| -".strip_tags($imja)."|".$data."|".strip_tags($email)."|".strip_tags($url)."|".strip_tags($text).".|<<end topik>>";
  3. $strok=$strok.chr(13).chr(10);
  4. include "blok.php";
  5. blokir($csv, $strok);
  6.  
  7. ==========================================
  8. <?
  9. function blokir($myfile, $zap)
  10. {
  11. if($fl=fopen($myfile, "a"))
  12. {
  13. for($j=0; $j<10; ++$j)
  14. {
  15. if (flock($fl, LOCK_EX)) break;else sleep(1);
  16. }
  17. fwrite($fl,$zap);
  18. flush($fl);
  19. flock($fl, LOCK_UN);
  20. fclose($fl);
  21. return true;
  22. }
  23. else
  24. {
  25. return false;
  26. }
  27. }
  28. ?>
  29.  

(Отредактировано автором: 12 Декабря, 2009 - 20:28:44)

 
 Top
Phantik
Отправлено: 12 Декабря, 2009 - 20:34:56
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Либо скрипт который создает файл переводи в utf-8
либо перед записью файла используй функцию
$utf8text = iconv("WINDOWS-1251", "UTF-8", "Русский текст для записи в файл");
 
 Top
mihai
Отправлено: 12 Декабря, 2009 - 20:46:27
Post Id


Новичок


Покинул форум
Сообщений всего: 55
Дата рег-ции: Сент. 2006  


Помог: 0 раз(а)




так вообще ни чего не записывает


PHP:
скопировать код в буфер обмена
  1.  
  2. fwrite($fl, iconv("WINDOWS-1251", "UTF-8", $zap));
  3.  
 
 Top
CenapaTop
Отправлено: 12 Декабря, 2009 - 22:56:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 166
Дата рег-ции: Авг. 2009  


Помог: 1 раз(а)




CODE (text):
скопировать код в буфер обмена
  1. $text = iconv("windows-1251", "UTF-8", $stroka[5]);
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB