За последние 24 часа нас посетили 16989 программистов и 1629 роботов. Сейчас ищет 1481 программист ...

хтмл коды &#номер;

Тема в разделе "PHP для новичков", создана пользователем Fatal, 28 июн 2008.

  1. Fatal

    Fatal Активный пользователь

    С нами с:
    28 июн 2008
    Сообщения:
    11
    Симпатии:
    0
    Здраствуйте!

    Вот проблема у меня... Пишу сайт и столкнулся с проблемой при отсылке из формы например ивритских букв они приобразуются в свои хтмл эквиленты...
    Но проблема в том что они так и записываются в БД а при выводе из БД на экран я использую htmlspecialchars(); и соответствено нужные мне буквы на экран не выводятся =\

    можете ли вы подсказать выход из данной ситуации?
    И извените за столь глупый вопрос :roll:

    Я подозревал локаль....Но не знаю что при этом делать.
     
  2. NOmeR1

    NOmeR1 Активный пользователь

    С нами с:
    11 май 2008
    Сообщения:
    97
    Симпатии:
    0
    Код (Text):
    1. <?php
    2.     $string = '& #100;& #101;& #102;& #103;& #104;& #105;';
    3.     $string = preg_replace_callback('~&#(\d+?);~', create_function('$m', 'return chr($m[1]);'), $string);
    4.     echo $string;
    5. ?>
    Только пробелы из $string убери, а то форум их превращает в обычные символы
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    o_0 А смысл при ВЫВОДЕ это делать?
     
  4. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    [vs]
    дабы хранить в базе неизмененнеы данные? :)
     
  5. Fatal

    Fatal Активный пользователь

    С нами с:
    28 июн 2008
    Сообщения:
    11
    Симпатии:
    0
    NOmeR1 Ты с античата? Я там задавал этот вопрос(doom123) и предложил этот мотод но он не сработал =\\
    Если бы это были англиские или русские символы то всё нормально ... но на этих не срабатывает =\

    [vs] А зачем портить входяшие в БД данные?
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Не, я это понимаю. Я не понимаю зачем выходящие портить :) В конце концов, для удаления тегов есть strip_tags, а чтобы вставить теги в сообщение, можно сделать тег
    Код (Text):
    1. .
     
  7. Fatal

    Fatal Активный пользователь

    С нами с:
    28 июн 2008
    Сообщения:
    11
    Симпатии:
    0
    [vs] strip_tags удалает не только теги.
     
  8. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    А если не надо их удалять а надо отображать ?

    Данные надо хранить в базе, и отображать в браузере, а вырезание/фильтрование/и.т.д. это нарушение всех мыслимых и немыслимых морально этических норм (wordpress например такой фигнёй страдает)
     
  9. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Вот что надо-то :)
    PHP:
    1. <?php
    2. $string = preg_replace('~&amp;#(\d+?);~', '&#\\1;', $string);
    3. ?>
     
  10. Fatal

    Fatal Активный пользователь

    С нами с:
    28 июн 2008
    Сообщения:
    11
    Симпатии:
    0
    Vladson Оказывется всё легко и просто. Спасибо!
     
  11. Fatal

    Fatal Активный пользователь

    С нами с:
    28 июн 2008
    Сообщения:
    11
    Симпатии:
    0
    кстате если ктото знает по какой причите символы превращяются в такое будет очень интересно послушать!
     
  12. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Fatal
    Кодировка сайта какая? Может браузер автоматически переводит?
     
  13. Fatal

    Fatal Активный пользователь

    С нами с:
    28 июн 2008
    Сообщения:
    11
    Симпатии:
    0
    делал utf-8 и windows-1251

    была 1 странность када сайт стоял на денвере всё было ок (в кодировке утф-8) перенёс сайт на xampp так место русских символов отоброжались иероглифы ..
     
  14. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Fatal
    Когда ты отправляешь форму со страницы в UTF-8 то ничего не переделывается, а так как в однобайтовых кодировках (windows-1251 например) нет таких символов, то браузер преобразует их в такие фишки (если интересны подробности читай W3C)
     
  15. Fatal

    Fatal Активный пользователь

    С нами с:
    28 июн 2008
    Сообщения:
    11
    Симпатии:
    0
    Vladson Уху походу всё изза денвера)

    непонятно ваще почему браузер никак не отреогировал на смену кодировки в мета теге када сайт стоял на денвере ..

    этож от веб сервера не зависит ... а при переносе на xampp всё помнялось на utf.
     
  16. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Причин может быть много, единственный способ узнать это разобраться самому (телепатов читающих настройки серверов и тут маловато)