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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Подскажите, в чем ошибка
webbaster
Отправлено: 24 Марта, 2011 - 06:51:26
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2011  
Откуда: Санкт-Петербург


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




Есть массив и нужно проверить кодировку каждого элемента и если не UTF-8, то перекодировать.

PHP:
скопировать код в буфер обмена
  1. foreach ($url_text as $key => $text_url) {
  2.         $charset=detect_cyr_charset($text_url);
  3.         if ($charset=w) {
  4.                 $url_text[$key]= iconv("CP1251", "UTF-8", $url_text[$key]);
  5.         }
  6.         else $url_text[$key]=$text_url;


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

Да, кстати, функция определения кодировки строки следующая:


PHP:
скопировать код в буфер обмена
  1. define('LOWERCASE',3);
  2.    define('UPPERCASE',1);
  3.    function detect_cyr_charset($str) {
  4.       $charsets = Array(
  5.          'k' => 0,
  6.          'w' => 0,
  7.          'd' => 0,
  8.          'i' => 0,
  9.          'm' => 0
  10.       );
  11.       for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
  12.          $char = ord($str[$i]);
  13.       //non-russian characters
  14.       if ($char < 128 || $char > 256) continue;
  15.       //CP866
  16.       if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
  17.          $charsets['d']+=LOWERCASE;
  18.       if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;
  19.       //KOI8-R
  20.       if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
  21.       if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;
  22.       //WIN-1251
  23.       if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
  24.       if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;
  25.       //MAC
  26.       if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
  27.       if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;
  28.       //ISO-8859-5
  29.       if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
  30.       if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;
  31.    }
  32.    arsort($charsets);
  33.    return key($charsets);


Отредактировано модератором: JustUserR, 24 Марта, 2011 - 16:32:11
Осуществлено обрамиление предоставленных PHP-кодов в соответствующие BB-теги
 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Марта, 2011 - 08:28:00
Post Id



Активный участник


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


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




4-я строка:
PHP:
скопировать код в буфер обмена
  1. $text_url= iconv("CP1251", "UTF-8", $text_url);

А последнюю убрать совсем
 
 Top
webbaster
Отправлено: 24 Марта, 2011 - 12:10:27
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Март 2011  
Откуда: Санкт-Петербург


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




DeepVarvar пишет:
4-я строка:
PHP:
скопировать код в буфер обмена
  1. $text_url= iconv("CP1251", "UTF-8", $text_url);

А последнюю убрать совсем


спс
 
 Top
JustUserR
Отправлено: 24 Марта, 2011 - 16:35:41
Post Id



Активный участник


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


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




webbaster пишет:
Да, кстати, функция определения кодировки строки следующая:
Для осуществления решения задачи по проведению определения кодовой таблицы, в соответствии с которой обеспечено размещение информационного поля в локальной верхнем базовом уровне трактования элемента, необходимо предшествующее включение управляющих функциональных объектов, позволяющих осуществить сопоставление параметров размещения ассоциированого информационного поле, в реальном слое данных, на основании стабализация которого возможно обеспеечении инициации эвристического процесса определения кодовой таблицы верхнего уровня


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB