|
|
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Возникла проблемка: есть скрипт, который должен выполнять подстановку данных в документе (заменять заполнители вида !!!12!!! необходимыми данными). фрагмент кода Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Подскажите, пожалуйста, с чем это может быть связано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2006, 23:30:36 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
irkovПодскажите, пожалуйста, с чем это может быть связано.у меня один раз было: при замене русских букв, буковка "Б" заменялась через раз, а иногда вместо неё конец строки вылазил. Чем то объяснить это не смогли, потому что замена происходила абсолютно хаотично и не всегда, решили проблему регулярными выражениями. В принципе можно и тебе попробовать использовать функцию preg_replace: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 07:57:35 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
ой очепятка, извиняюсь, нада так Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 07:59:59 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Вырезание гланд через задний проход. Ну и нахрена здесь регулярки? Гвозди мелкоскопом забивать можно, только молоток для этого более подходящ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 08:13:11 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
irkovПроисходит это не всегда (бывает, что все работает без проблем), систему возникнования ошибки определить не могу.Вообще не происходит.Подскажите, пожалуйста, с чем это может быть связано.С тем, что вы ожидаете найти ошибку там, где её нет. Ищите косяк в своём скрипте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 08:14:27 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
zg *Ну и нахрена здесь регулярки?обработка текста регулярками идёт намного быстрее и эффективней любых других функцийВы делали замеры? Или дадите ссылки на авторитетные источники?и к слову str_replace - тоже в качестве "что заменяем" получает регулярное выражение...Наверно эти выводы были получены на основе изучения исходного кода сырцов PHP? Ссылку на lxr.php.net, где из кода было бы видно, что str_replace делается через жо..., ой, простите, через регулярные выражения, в студию.preg_replace улучшенная её версия и работает намного быстрееЭтот бред я пропущупри этом кучу вызовов str_replace можно заменить одним вызовом preg_replaceТо, что вы предложили, вы называете "заменить кучу str_replace на один preg_replace"? В мануал заглядывать никогда не пробовали? mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] ) zgплеваться каждый может, а решить проблему? я предлагаю варианты решения проблемы, каким пользоваться дело лично каждогоЧтобы решить проблему, надо её хотя бы воспроизвести. Вы же не разобравшись в ней предложили зарыть голову в песок. И далеко не факт, что зарывание головы в песок проблему решит. Не говоря о том, что это просто "не наш метод" - программист должен думать головой, а не прятать её в песках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 09:44:18 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Я думаю, что если бы ошибка была в скрипте, он вообще не работал бы корректно, а в данном случае он может неделю нормально работать, а потом несколько дней глючить. Про регулярные выражения думала, если ничего другого не останется, то попробую, но все же хотелось бы разобраться в проблеме со str_replace() - очень не люблю, когда остаются какие-то нерешенные вопросы, которые имеют тенденцию потом вылезать боком в самые неподходящие моменты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 11:00:53 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Господа, конструктивно участвуйте в форуме. мессаги, которые не относятся к теме топа - удалил. ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 12:58:27 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
irkovЯ думаю, что если бы ошибка была в скрипте, он вообще не работал бы корректно, а в данном случае он может неделю нормально работать, а потом несколько дней глючить.Т.е. вы утверждаете, что при одном и том же содержимом файла $filename и одних и тех же значениях для замены (т.е. при одинаковых условиях) скрипт каждый раз работает по разному? Или вы этого не утверждаете? Если второе - так бегом искать неблагоприятные условия и выяснять, в чём дело - в FAQ по отладке посылать или сами найдёте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 16:53:49 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Я утверждаю, что он так работает далеко не каждый раз (за последние 2 недели было 3 сбоя). В процессе написания и отладки эта проблема у меня в принципе не возникла ни разу. FAQ по отладке я знаю, но он никак не объясняет ситуацию, если, например, !!!2!!! встречается в шаблоне раз 5, и в 4 местах замена происходит, а в пятом - нет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 19:03:24 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Версии ПО укажите. Повторный парсинг текста с ошибкой решает проблему или нет? ---------------------------------------- Артисты не приехали, приехали цыгане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 19:09:39 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Версии: Windows XP sp2 Apache 1.3.31 php 4.3.10 При повторном запуске с теми же значениями переменных ошибки не возникает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 19:18:27 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
irkovПри повторном запуске с теми же значениями переменных ошибки не возникает.Значит проблема-то не в том, что PHP работает когда как повезёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 20:07:58 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Тьфу млин. Неправильно понял походу. В любом случае - в таких случаях принято давать минимальную программу, воспроизводящую проблему + (желательно минимальный) набор входных данных, на которых эффект воспроизводится. Иначе гадать можно бесконечно долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 20:09:36 |
|
||
|
(PHP) str_replace - не всегда заменяет подстроки
|
|||
|---|---|---|---|
|
#18+
Я понимаю, что гадание, как правило, не помогает,но не существует входных данных, с которыми эта ошибка гарантировано появляется. Как я уже написала, при одних и тех же данных при повторном запуске программы ошибка не возникает, т.е. четкая система возникновения ошибки отсутствует напрочь. Попробую сейчас сделать демо-скрипт с входными данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2006, 20:19:41 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=33712423&tid=1476218]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
188ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 485ms |

| 0 / 0 |
