Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
1

Неправильно работает функция strrev

07.06.2014, 14:26. Показов 5480. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пробую функцию реверс строки, этот код-
PHP
1
2
3
echo strrev("Hello world!"); // выводит "!dlrow olleH"
echo "Всем привет"; // выводит Всем привет
echo strrev("Всем привет"); // уже выводит ???????????
Вобщем неработают функции с русским текстом! Вся страница отображается хорошо но Как быть когда одно или 2 слова на странице кракозяброй!?
При чем кракозяброй (строки или переменные) становятся в основном после использования их в какой-нибудь функции!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2014, 14:26
Ответы с готовыми решениями:

Неправильно работает рекурсивная функция
Всем привет. Ребят, есть вот такая задача: Есть организация. У неё есть всякие подразделения...

Неправильно работает функция mail
Здравствуйте, пытаюсь отправить письмо с помощью функции mail - ошибок никаких нет, но письма не...

Функция отправки сообщения работает неправильно
Здраствуйте.Решил сделать контактную форму с php обработчиком. Вродебы код правильный, но при...

Проверить является ли строка палиндромом без использования strrev
Есть у меня такая задача,нужно написать программу, проверяющую, является ли строка палиндромом.не...

4
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
07.06.2014, 14:30 2
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Вобщем неработают функции с русским текстом! Вся страница отображается хорошо но Как быть когда одно или 2 слова на странице кракозяброй!?
При чем кракозяброй (строки или переменные) становятся в основном после использования их в какой-нибудь функции!
1. пишите в кодировке Windows cp-1251. Тогда функций strrev() будет работать корректно.
2. либо сделайте отдельную функцию. Например, если пишете в utf8:
PHP
1
2
3
4
5
function utf8_strrev($str){
    preg_match_all('/./us', $str, $ar);
    return implode(array_reverse($ar[0]));
}
echo utf8_strrev("Привет");
Код
тевирП
0
843 / 738 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
07.06.2014, 14:54  [ТС] 3
Цитата Сообщение от pav1uxa Посмотреть сообщение
пишите в кодировке Windows cp-1251.
Нет возможности, сайт (двиг сайта уже написан)
Цитата Сообщение от pav1uxa Посмотреть сообщение
либо сделайте отдельную функцию. Например, если пишете в utf8:
Функция хорошая, рабочая но она слишком сложная, и как я ее могу перетранспортировать на другие функции?
У меня вот еще был нерабочий пример, который вроде должен работать, но он неработал.
PHP
1
2
  $string = strpos("Привет", "в");
  echo $string;
Заработал он лиш вот только после таких сложных манипуляций!
Вобше ничего непонятно! Было strpos, стало mb_strpos!
Я даже в справочнике ненашол такой у них функции mb_strpos!!

На офф сайте неработают половина функций! Да кто их туда натолкал то и зачем, хорошо кто давно в пхп - тот разберется, а если новеньким в пхп сразу заранее дают нерабочие функции или коды- то как в них разобраться то!?

PHP
1
2
3
4
$string = mb_strpos("Привет", "в", 0, 'UTF-8');
if ($string === false) 
echo 'Такой буквы нет!';
echo $string;
И что теперь делать то? вобще ни одна стандартная функция из справочника нормально неработает!
Все нужно как то переделывать и непонятно как переделывать...
Есть ли какой нибудь обший стандартный шаблон (по кодировке) чтоб подставлять к таким функциям которые по нормальному отказываются работать?
0
562 / 339 / 87
Регистрация: 15.05.2013
Сообщений: 812
Записей в блоге: 1
07.06.2014, 15:05 4
Я даже в справочнике ненашол такой у них функции mb_strpos!!
Искали видать плохо, либо без должного энтузиазма.
Вот функция: http://www.php.net/manual/ru/f... strpos.php
вобще ни одна стандартная функция из справочника неработает!
Все функции работают. Все дело в том, с чем им приходится работать. mb - функции предназначены для многобайтовых кодировок, какой и является utf8. В справочнике даже целый раздел с этими функциями существует.

Как уже сказали, если возникает потребность в таких манипуляцих, то следует либо использовать другую кодировку, либо писать свои аналоги функций (благо с пространствами имен можно даже имена оставлять прежними чтобы не путаться), либо использовать уже существующие замены.
1
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
07.06.2014, 15:11 5
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
На офф сайте неработают половина функций
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
И что теперь делать то? вобще ни одна стандартная функция из справочника нормально неработает!
Да вообще ужас!

Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Есть ли какой нибудь обший стандартный шаблон (по кодировке) чтоб подставлять к таким функциям которые по нормальному отказываются работать?
Если текст английский, то неважно какая кодировка (utf8 или cp1251).
Если русский то, все стандартные функции работают только для cp1251. Для utf8 нужно использовать функции с префиксом mb_* (multibyte), в функциях preg_* использовать флаг "u" (unicode) и все будет хорошо.
1
07.06.2014, 15:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.06.2014, 15:11
Помогаю со студенческими работами здесь

Вывести текст задом наперед без использования strrev()
Добрый день. Мучаюсь над таким "ученическим" вопросом: есть задача - вывести текст задом...

Неправильно работает функция
You are given natural number n. Calculate 12+22+...+n2. Example Input Output 2 5 Добавлено...

Неправильно работает функция
Проблема заключается в том, что в случае, если пользователь вводит числа от 1 до 9 все работает...

Неправильно работает функция
void FreeTop( Tree *&tree ) { if( tree->d == NULL )delete tree; else FreeTop( tree->d...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru