Пример:
ord('a') равно 97
ord('b') равно 98
ord('c') равно 99
ord('1') равно 49
ord('2') равно 50
Есть ли такая функция на php?
а вообще, задача, чтобы программа из списка находила слово, буквы или цифры в котором идут подряд без отступов. То есть "abcd" или "1234" подойдет, а "acde" и "1245" уже нет.
Заранее спасибо за помощь!
Спустя 4 минуты, 2 секунды (17.11.2011 - 14:00) Invis1ble написал(а):
Цитата |
Есть ли такая функция на php? |
есть, может я тебя удивлю, но она называется ord()

только учти, что корректно работать будет только с латинницей (или cp1251)
Спустя 9 минут, 54 секунды (17.11.2011 - 14:10) Skill01 написал(а):
Да, ступил, не посмотрел на ord
. Спасибо!)

Спустя 9 часов, 28 минут, 41 секунда (17.11.2011 - 23:39) Skill01 написал(а):
Еще вопрос, как сделать, чтобы функция ord принимала unicode в кавычках? В pythone, например, просто -- ord(u'β')...а как на пхп не знаю, только начинаю с знакомится с этим языком... Нужно для корректного отображения кода всяких там омег, альф, и, например, букв немецкого языка с точками наверху.
Спустя 13 минут, 17 секунд (17.11.2011 - 23:52) Winston написал(а):
ТЫЦ
Спустя 2 минуты, 34 секунды Winston написал(а):
Skill01
Совет тебе: когда смотришь описалово ф-ии на php.net, прокрути страницу до комментов, в них ты можешь найти какие хочешь решения разных задач.
Спустя 2 минуты, 34 секунды Winston написал(а):
Skill01
Совет тебе: когда смотришь описалово ф-ии на php.net, прокрути страницу до комментов, в них ты можешь найти какие хочешь решения разных задач.
Спустя 5 минут, 28 секунд (17.11.2011 - 23:57) Игорь_Vasinsky написал(а):
может это
Свернутый текст
function ordUTF8($c, $index = 0, &$bytes = null)
{
$len = strlen($c);
$bytes = 0;
if ($index >= $len)
return false;
$h = ord($c{$index});
if ($h <= 0x7F) {
$bytes = 1;
return $h;
}
else if ($h < 0xC2)
return false;
else if ($h <= 0xDF && $index < $len - 1) {
$bytes = 2;
return ($h & 0x1F) << 6 | (ord($c{$index + 1}) & 0x3F);
}
else if ($h <= 0xEF && $index < $len - 2) {
$bytes = 3;
return ($h & 0x0F) << 12 | (ord($c{$index + 1}) & 0x3F) << 6
| (ord($c{$index + 2}) & 0x3F);
}
else if ($h <= 0xF4 && $index < $len - 3) {
$bytes = 4;
return ($h & 0x0F) << 18 | (ord($c{$index + 1}) & 0x3F) << 12
| (ord($c{$index + 2}) & 0x3F) << 6
| (ord($c{$index + 3}) & 0x3F);
}
else
return false;
}
Спустя 8 минут, 27 секунд (18.11.2011 - 00:06) Winston написал(а):
Игорь_Vasinsky
Тот вариант который дал я и тот который ты, показывают разные acii коды для β
Но твой вариант мне кажется, более правильные результаты показывает
Тот вариант который дал я и тот который ты, показывают разные acii коды для β

Но твой вариант мне кажется, более правильные результаты показывает

Спустя 2 минуты, 24 секунды (18.11.2011 - 00:08) Игорь_Vasinsky написал(а):
Спустя 2 часа, 39 минут, 23 секунды (18.11.2011 - 02:48) vital написал(а):
Цитата (Игорь_Vasinsky @ 17.11.2011 - 22:57) |
может это Свернутый текст function ordUTF8($c, $index = 0, &$bytes = null) |
это и
Цитата |
чтобы функция ord принимала unicode в кавычках? В pythone, например, просто -- ord(u'β')...а как на пхп не знаю, только начинаю с знакомится с этим языком... |
одна из очень четких демонстраций почему пхп говно.
Вот скажите, зачем.. ЗАЧЕМ вы меняете питон на пхп?
Спустя 5 часов, 19 минут, 7 секунд (18.11.2011 - 08:07) twin написал(а):
Цитата (vital @ 17.11.2011 - 23:48) |
одна из очень четких демонстраций почему пхп говно. |
Вспоминаются танцоры почему то сразу.
По сабжу. Зачем так мудрить? Ведь можно просто немного изменить алгоритм и сделать гораздо проще. Не нужно посимвольного анализа тут:
function natSortFilter($str)
{
preg_match_all("#.{1}#u", $str, $arr);
sort($arr[0]);
return ($str == implode('', $arr[0])) ? 'Хорошая, годная строка' : 'Обломись';
}
echo natSortFilter('1234');