Автор Тема: Помогите пожалуйста... & # 1086 надо перевести в символы... Очень нужно  (Прочитано 6705 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Matold

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.matold.narod.ru/
Здравстуйте!
У меня при импорте русского текста из excela в базу пишется
&#1086&#1087&#1080&#1089&#52
- такая строка. А я хочу перед самим импортом заменить эту строку на нормальные русские символы. На php.net я чет не разобрался с ф-иями, там самодельные примеры, но они не работают у меня (похоже применяю не правильно (( ) Вообщем если кто-то похожее делал - напишите пример плиз, как это возможно осуществить....
Заранее спасибо за вашу помощь!!!

Оффлайн attilla

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 90
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Плохо искал ;)
http://ru.php.net/html_entity_decode


<?php
$text
="&#1086&#1087&#1080&#1089&#52";
print (
html_entity_decode($text));
?>


И получи свою опис4

Оффлайн Matold

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.matold.narod.ru/
Так фишка в том, что если посмотреть страницу в виде html - то &#1086&#1087&#1080&#1089&#52 - такая фигня не изменится на русские символы. С выводом на экран пользователю проблем нету. Проблема в том например, что когда в базе хранятся вместо русских символов &#xxxx&#yyyy, то  поиск не будет работать.

Оффлайн Matold

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.matold.narod.ru/

Оффлайн pauk

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tax-free.pp.ua/
Цитировать
Matold:
то поиск не будет работать

будет, если искать не "опис4", а &#1086&#1087&#1080&#1089&#52
Hi!

Оффлайн Matold

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.matold.narod.ru/
Ок :) Поиск будет работать, но не так, как хотелось бы :)

Может кто насчет регулярных выражений поможет:

//ЗАМЕНЯЕТ &#1086;&#1087;&#1080;&#1089;&#52; на опис4
function Unicode2Charset($str$charset = \'Windows-1251\') {
  return preg_replace(
    \'~&#(?:x([\\da-f]+)|(\\d+));~ie\',
    \'iconv("UTF-16LE", $charset, pack("v", "$1" ? hexdec("$1") : "$2"))\',
    $str
  );
}

А как изменить регулярное выражение, чтобы оно заменяло
 
&#1086&#1087&#1080&#1089&#52 на опис4?

(во втором случае символы не разделены ; )
Просто когда меняю регулярное выражение на то, что в  FAQ дописано - возвращает пустую строку.

Оффлайн pauk

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tax-free.pp.ua/
Спецификация требует разделения через ";"
Обработай строку с заменой
&#
на
;&#
Hi!

Оффлайн Matold

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.matold.narod.ru/
Точно :) Я тоже уже решил так сделать... Спасибо за помощь!

Оффлайн pauk

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tax-free.pp.ua/
Только в начале не забудь удалить ";"
Hi!

Оффлайн Matold

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 25
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.matold.narod.ru/
Вот, может кому-нить еще пригодится :)
<?php function uc2html($str) { 
    
$ret = \'\'; 
    for( $i=0; $i<strlen($str)/2; $i++ ) { 
        $charcode = ord($str[$i*2])+256*ord($str[$i*2+1]); 
        $ret .= \'&#\'.$charcode; 
    } 
     return HTMLtoKOI($ret); 

function HTMLtoKOI($str){ 
  $str = preg_replace(\'~&#(\\d+)~se\',\'html_entity_decode("$0".";",ENT_QUOTES,"CP1251")\',$str); 
  $str = str_replace(";","",$str); 
  $str = preg_replace(\'~&#(\\d+)~se\',\'\\\\1>1103 ? "\\\\0;" : (\\\\1>848 ? chr(\\\\1-848) : chr(\\\\1))\',$str); 
  return trim($str); 
} ?> 

Оффлайн pauk

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 0
    • Просмотр профиля
    • http://tax-free.pp.ua/
Напиши статейку и опубликуй :)
А то поиском мало кто пользуется
Hi!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28