Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> str_replace не работает 
:(
    Опции темы
dVital
  Дата 11.11.2007, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Здраствуйте! Сейчас тружусь над разработкой одного скрипта, где требуется замена слов в большом объеме текста (> 100000 символов). Столкнулся с проблемой, что функция php str_replace не работает с такими большими строками. Что делать? Подскажите, пожалуйста. 
PM MAIL   Вверх
ewolf
Дата 11.11.2007, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 4
Всего: 18



Согласно документации php, ограничений на строки по длине практически нет (разьве что объемом оперативной памяти). Поэтому странно, чтобы str_replace имела проблемы с очень длинными строками (хотя возможно, что она обрабатывает их очень долго). Как вариант: разбивай длинную строку на несколько коротких
PM MAIL ICQ   Вверх
skyboy
Дата 11.11.2007, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



dVital, может, попробуешь в самом деле разбить текст и проверить замену на кусках? ну, и хотя бы привести код, осуществляющий замену?
PM MAIL   Вверх
dVital
Дата 11.11.2007, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



Разбить текст нельзя, потому что проблема в том, что заменяемое слово может оказаться поделено на 2 smile 
Код, осуществляющий замену, - состоит из вызова одной функции - str_replace. Так что не знаю, что вам приводить. 
PM MAIL   Вверх
SelenIT
Дата 11.11.2007, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



dVital, уточните плз, следующие моменты:
  • В чем проявляется ошибка: данные после замены обрезаются, оказываются пустыми, срабатывает таймаут, скрипт вываливается с ошибкой, что-то еще?
  • Откуда берется исходная строка? В какой она кодировке? Не в UTF-8 случайно?
  • Откуда уверенность, что причина ошибки - именно размер строки?



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
dVital
Дата 11.11.2007, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



SelenIT,
  • Исходная строка остается неизменной
  • Строка берется из файла, файл - Вордовский xml . 
  • Предположение...

PM MAIL   Вверх
skyboy
Дата 11.11.2007, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(dVital @  11.11.2007,  00:47 Найти цитируемый пост)
Исходная строка остается неизменной

str_replace - это функция. она не изменяет аргумент. измененный текст находится в результате вызова. Это учтено?

PM MAIL   Вверх
SelenIT
Дата 11.11.2007, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 8
Всего: 401



Цитата(dVital @  11.11.2007,  01:47 Найти цитируемый пост)
Вордовский xml 

Хм... кодировка там скорее всего мультибайтная, возможно, дело в этом. Но неплохо бы все же увидеть код замены и минимальный кусок данных, вызывающий ошибку.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
dVital
Дата 12.11.2007, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 21.6.2007

Репутация: нет
Всего: нет



skyboy, это да. 
SelenIT, сегодня откопаю текст программы и вынесу сюда. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.