Ответы пользователя по тегу PHP
  • Определение кода юникод по символу (PHP)?

    KEKSOV
    @KEKSOV
    Если нужно много и часто сравнивать UTF-8 символы с UNICODE символами, то я бы поступил следующим образом в зависимости от особенностей задачи:

    1. Если нужно оставить только символы рус-лат-цифры-препинания, то берем нужные нам UNICODE таблицы с этой страницы www.unicode.org/charts/

    (в частности:
    Некоторые символы www.unicode.org/charts/PDF/U2100.pdf
    Кириллические символы www.unicode.org/charts/PDF/U0400.pdf, www.unicode.org/charts/PDF/U0500.pdf
    Знаки препинания www.unicode.org/charts/PDF/U2000.pdf
    И еще пунктуация www.unicode.org/charts/PDF/U0080.pdf)

    И заранее пересчитываем UNICODE коды из этих таблиц в массив UTF-8 символов
    Правила перекодировки UNICODE в UTF-8 можно посмотреть тут en.wikipedia.org/wiki/UTF-8

    Bits	Last code point	Byte 1
      7	U+007F	0xxxxxxx
    
    Bits	Last code point	Byte 1	Byte 2	Byte 3	Byte 4	Byte 5	Byte 6
      7	U+007F	0xxxxxxx
    11	U+07FF	110xxxxx	10xxxxxx
    16	U+FFFF	1110xxxx	10xxxxxx	10xxxxxx
    21	U+1FFFFF	11110xxx	10xxxxxx	10xxxxxx	10xxxxxx
    26	U+3FFFFFF	111110xx	10xxxxxx	10xxxxxx	10xxxxxx	10xxxxxx
    31	U+7FFFFFFF	1111110x	10xxxxxx	10xxxxxx	10xxxxxx	10xxxxxx	10xxxxxx
    

    Для тренировки можно взять Word и нажать Alt-X после символа, отобразится его UNICODE значение. Итак, для нашей буквы «Номер» UNICODE значение 2116 (Hex).
    Это значение подпадает под правило (битовая маска) U+FFFF 1110xxxx 10xxxxxx 10xxxxxx
    При помощи calc преобразуем 2116 (Hex) в двоичный вид 10000100010110 (Bin).
    Вставляем наши биты в маску U+FFFF 1110[0010] 10[000100] 10[010110]
    Полученное число запихиваем снова в calc 111000101000010010010110 и получаем E28496 hex, это и есть искомый код нашего символа в UTF-8.


    получая таким образом список желаемых символов. Далее, при обработке текста, проверяем его символы с этим набором — если символ нашелся в этом массиве, значит он нам нужен. Если не попал, то — свободен (по-началу нужно будет проверить, все ли требуемые символы мы учли)

    2. Второй вариант отличается от первого тем, что мы берем список нежелаемых символов и заносим их в аналогичный список, с которым сравниваем символы из наших страниц — если символ попал в этот список, значит он нам не нужен. Все не попавшие символы считаем хорошими.

    Список символов нужно оформить в виде ассоциативного массива, где в качестве ключа выступает UTF-8 код, а в качестве значения true или false. В этом случае проверка очередного символа из текста будет почти мгновенной — просто проверить значение массива по ключу.
    Ответ написан
    Комментировать
  • Система тикетов на PHP — бесплатная и желательно Web 2.0?

    KEKSOV
    @KEKSOV
    А мне очень нравится thebuggenie По всем пунктам подходит.
    Ответ написан
    Комментировать
  • Как с помощью PHP можно распарсить PDF?

    KEKSOV
    @KEKSOV
    Похожий вопрос обсуждалась тут. К сожалению, автор вопроса никак не прокомментировал применимость приведенных в ответах утилит. Возможно, имеет смысл написать ему личное сообщение с аналогичным вопросом, вдруг, он продвинулся в положительную сторону.
    Ответ написан
  • Как общатся со службой в windows через php?

    KEKSOV
    @KEKSOV
    Если просто GET с параметрами, то и обычный fopen справится, если что-то более сложное, то curl или SOAP
    Ответ написан
    Комментировать
  • Загрузка файла на сервер в PHP

    KEKSOV
    @KEKSOV
    А, все понятно нужно сменить версию PHP. У Вас как раз глючная 5.3.8 установлена
    Ответ написан
    1 комментарий
  • Загрузка файла на сервер в PHP

    KEKSOV
    @KEKSOV
    1. Файл точно меньше 2М?
    2. Веб сервер имеет права на запись в /tmp?
    Ответ написан