Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Тексты > str_replace не работает |
Автор: dVital 11.11.2007, 00:16 |
Здраствуйте! Сейчас тружусь над разработкой одного скрипта, где требуется замена слов в большом объеме текста (> 100000 символов). Столкнулся с проблемой, что функция php str_replace не работает с такими большими строками. Что делать? Подскажите, пожалуйста. |
Автор: ewolf 11.11.2007, 00:40 |
Согласно документации php, ограничений на строки по длине практически нет (разьве что объемом оперативной памяти). Поэтому странно, чтобы str_replace имела проблемы с очень длинными строками (хотя возможно, что она обрабатывает их очень долго). Как вариант: разбивай длинную строку на несколько коротких |
Автор: skyboy 11.11.2007, 01:07 |
dVital, может, попробуешь в самом деле разбить текст и проверить замену на кусках? ну, и хотя бы привести код, осуществляющий замену? |
Автор: dVital 11.11.2007, 01:17 |
Разбить текст нельзя, потому что проблема в том, что заменяемое слово может оказаться поделено на 2 ![]() Код, осуществляющий замену, - состоит из вызова одной функции - str_replace. Так что не знаю, что вам приводить. |
Автор: SelenIT 11.11.2007, 01:42 |
dVital, уточните плз, следующие моменты:
|
Автор: dVital 11.11.2007, 01:47 |
SelenIT,
|
Автор: skyboy 11.11.2007, 01:58 |
http://www.php.net/str_replace - это функция. она не изменяет аргумент. измененный текст находится в результате вызова. Это учтено? |
Автор: SelenIT 11.11.2007, 02:00 |
Хм... кодировка там скорее всего мультибайтная, возможно, дело в этом. Но неплохо бы все же увидеть код замены и минимальный кусок данных, вызывающий ошибку. |
Автор: dVital 12.11.2007, 11:20 |
skyboy, это да. SelenIT, сегодня откопаю текст программы и вынесу сюда. |