Как мне проверить, что строка содержит только международные буквы и пробелы в UTF8 в PHP? - PullRequest
3 голосов
/ 13 ноября 2008

В Python я мог бы преобразовать его в Unicode и выполнить поиск регулярных выражений '(? U) ^ [\ w] + $', но PHP, похоже, не понимает международный язык \ w, или нет?

Ответы [ 3 ]

8 голосов
/ 13 ноября 2008

Хотя я не проверял себя, просмотр http://us3.php.net/manual/en/reference.pcre.pattern.syntax.php предлагает следующее: '/ ^ [\ p {L}] + $ / u' будет работать - \ p {L} будет соответствовать любому Юникод письмо. Кроме того, вы можете написать это без фигурных скобок - '/ ^ [\ pL] + $ / u'.

1 голос
/ 13 ноября 2008

afaik PHP не знает о utf8, что означает, что сам php не сможет обработать его, кроме как побайтно.

PHP считает, что все латинские1, но есть расширения, которые могут быть вам полезны, например, mbstring.

http://se.php.net/mbstring

0 голосов
/ 13 ноября 2008

Обеспечение правильной работы UNICODE повсюду в базе кода - одна из «больших» возможностей PHP6.

До этого момента вам было рекомендовано НЕ использовать UNICODE в php из-за многочисленных проблем безопасности, которые могут возникнуть из-за этого.

Большая часть кода просто не знакома с UNICODE, и, следовательно, небезопасна, и эксплойты могут пройти через нее способами, которые действительно неприятны.

...