| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Тексты > количество символов |
| Автор: Zakir_Kadiri 11.10.2007, 09:22 | ||||
| Привет всем. Рад что заного создаю тему Есть текс с русскими и англискими символами. Например
надо обрезат
надо чтоб только 40 символа принтовал пхп. Если только на русском или на латинском то не проблема, но они вместе ругаеться. У каго то есть идеи, кто нибуд ранше встречалься такой проблемой |
| Автор: IAmEternaL 11.10.2007, 10:46 | ||
подожди... тебе надо просто первые 40 символов вывести?
подозреваю, что задача не в этом - но как описал суть проблемы, так и отвечаю |
| Автор: vasac 11.10.2007, 13:04 |
| http://ru2.php.net/mb_substr это не поможет? |
| Автор: Zakir_Kadiri 11.10.2007, 13:27 |
| Это не дефаулт :( |
| Автор: IAmEternaL 11.10.2007, 14:18 | ||||
| сразу бы так есть два варианта решения первый
в данном случае, как мы видим, сперва из ютф фигачим это дело в ту кодировку, в которой наши кириллические символы будут кодироватся одним байтов, после чего сабстр и обратная конвертация токмо надо учитывать, шо специфические ютф символы (те, которые в cp1251 не содержаться) могут быть потеряны (ну - предположительно) второй:
работает отлично и проще, + грамотно по отношению к ютф в принципе |
| Автор: Zakir_Kadiri 11.10.2007, 14:34 | ||
спасиба браток |
| Автор: IAmEternaL 11.10.2007, 14:57 |
| рад что ты выбрал более правильный вариант решения ;) удачи |
| Автор: Zakir_Kadiri 11.10.2007, 15:08 | ||||||
Если чесна можно ещо модифицирироват
Но одново я не смог. Надо чтоб
где то максималное длина символов 30 символ IAmEternaL, если и в этом ты мне паможеш я помогу в любом деле (почти |
| Автор: IAmEternaL 11.10.2007, 16:55 | ||||||||
модифицировать так - не стоит потому что в итоге, ты получишь нарезку строки по 40 символов в $matches (вот почему (.{0,40}).*) и, кроме того, она (проверка) не будет работать с строками меньше 40 символов (вот почему (.{0,40}).*) обьясни подробнее последнюю просьбу тебе нужно обрезать не по символам, а по словам? ну типа чтобы обрывало не на полуслове а в его окончании или что ты имел в виду? |
| Автор: sTa1kEr 11.10.2007, 17:32 | ||
Не правда. Это preg_match(), а не preg_match_all(), по этому попадут только первые 40 символов, а дальше функция прекратит выполнение. |
| Автор: Zakir_Kadiri 13.10.2007, 08:32 | ||||
Ну хорошо обясну все подробно. Есть поисковой механизм. Ищет слово в тексте и должно принтовать обрезок из текста который соотвествует следующему правилу:
это вроде алгоритм... не знаю как понятно я описал |