За последние 24 часа нас посетили 17735 программистов и 1921 робот. Сейчас ищут 1028 программистов ...

Что за кодировка

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

  1. Locker

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

    С нами с:
    12 авг 2006
    Сообщения:
    124
    Симпатии:
    0
    Код (Text):
    1. &# 40;&# 87;&# 114;&# 105;&# 116;&# 116;
    - что это за кодировка и как ее в обычную перевести? (пробелы специально поставил)
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    &#xxx — где ххх соответствующий код символа в ASCII
     
  3. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Преобразовать (именно средствами РНР, как спрашивалось) можно так:

    PHP:
    1. <?php
    2.  
    3. // Строка с символами
    4. $text = '(Writt';
    5.  
    6. // Преобразовываем
    7. if(preg_match_all('/&#([\d]+?);/', $text, $matches)) {
    8.     foreach($matches[1] as $code) {
    9.         echo chr($code);
    10.     }
    11. }
    12.  
    13. ?>
    Замечание тем, кто так и жаждет сказать, что нефиг это на РНР преобразовывать, а надо сохранять правильно:
    Человек спросить, как преобразовать, поэтому и получил ответ "КАК преобразовать".
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Apple
    А можно мне всё равно вставить? :)
    Имхо — регулярка лишняя.
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Elkaz
    Ладненько =)

    PHP:
    1. <?php
    2.  
    3. // Строка с символами
    4. $text = '(Writt';
    5.  
    6. // Преобразовываем
    7. $text = explode(';', $text);
    8. $text = str_replace('&#', '', $text);
    9.  
    10. foreach($text as $code) {
    11.     echo chr($code);
    12. }
    13.  
    14. ?>
    Но разве регулярка не смотрится изящней? :)
     
  6. Locker

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

    С нами с:
    12 авг 2006
    Сообщения:
    124
    Симпатии:
    0
    блин, спасибо :)
     
  7. TheShock

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

    С нами с:
    30 май 2009
    Сообщения:
    1.255
    Симпатии:
    0
    Адрес:
    Київ
    можно вставить в хтмл-страницу и открыть в браузере :)
     
  8. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Ну, кому как. Я просто регулярки для другого использую, но это мой субъектив :) Спасибо и за альтернативную версию.
     
  9. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  10. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Sergey89
    Я помнил, что было нечто похоже :))) Но зациклился на specialchars_decode
     
  11. Vitas

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

    С нами с:
    7 фев 2006
    Сообщения:
    595
    Симпатии:
    0
    Адрес:
    Новосибирск, Академгородок
    Код (Text):
    1. #include <stdio.h>
    2.  
    3. int main()
    4. {
    5.     char str[] = "&#72;&#101;&#108;&#108;&#111;";
    6.     char *head = str + 2;
    7.     char *tail = str;
    8.     char chr = 0;
    9.    
    10.     while (*head)
    11.     {
    12.         if (*head == ';')
    13.         {
    14.             *tail++ = chr;
    15.             head += 3;
    16.             chr = 0;
    17.             continue;
    18.         }
    19.         chr = chr * 10 + *head++ - '0';
    20.     }
    21.     *tail = 0;
    22.    
    23.     printf("%s\n", str);
    24.    
    25.     return 0;
    26. }
    :)