PHP: Кавычки в читаемых/записываемых файлах
2357
11
Поручик Голицын
шатун сибирский обыкновенный
Есть текстовые файлы на сервере.
Есть php-скрипт, который читает выбранный файл и выводит его содержимое в textarea. Далее файл редактируется, жмется кнопка ОК, содержимое из textarea пишется обратно в файл.
Трабла: при записи все кавычки, которые есть в тексте в textarea принудительно экранируются ' \" '.
И в итоге имеем ' \"Microsoft\" corporation can't make good soft '
Как победить?
Есть php-скрипт, который читает выбранный файл и выводит его содержимое в textarea. Далее файл редактируется, жмется кнопка ОК, содержимое из textarea пишется обратно в файл.
Трабла: при записи все кавычки, которые есть в тексте в textarea принудительно экранируются ' \" '.
И в итоге имеем ' \"Microsoft\" corporation can't make good soft '
Как победить?
=SmasH=
veteran
как насчет
string stripslashes (string str)
string stripslashes (string str)
Поручик Голицын
шатун сибирский обыкновенный
Еще один прикол:
описанные текстовые файлы все в кодировке koi8. При чтении в вышеупомянутую textarea и последующем сохранении с кодировками ничего не делаю.
Некоторые файлы при сохранении остаются в той же кодировке, а некоторые переходят в Win.
Причем это не случайным образом, а постоянно одни и те же файлы.
(Уже пробовал принудительную перекодировку convert_cyr_string($str, "w", "k"); именно этим файлам делать - не помогает).
Может кто-нить такое объяснить?
описанные текстовые файлы все в кодировке koi8. При чтении в вышеупомянутую textarea и последующем сохранении с кодировками ничего не делаю.
Некоторые файлы при сохранении остаются в той же кодировке, а некоторые переходят в Win.
Причем это не случайным образом, а постоянно одни и те же файлы.
(Уже пробовал принудительную перекодировку convert_cyr_string($str, "w", "k"); именно этим файлам делать - не помогает).
Может кто-нить такое объяснить?
Поручик Голицын
шатун сибирский обыкновенный
Поправочка:
перекодировка помогает.
Вот только один и тот же "капризный" файл еще и ведет себя по-разному в зависимости от того, были сделаны изменения или нет.
перекодировка помогает.
Вот только один и тот же "капризный" файл еще и ведет себя по-разному в зависимости от того, были сделаны изменения или нет.
UdoD
veteran
какая-то фантастика. Форма-то одна и та же, всегда с сервера? Иэ кэша с другими заголовками и META-тэгом ничего не вылезает?
Поручик Голицын
шатун сибирский обыкновенный
Сам знаю, что фантастика :).
А результаты исполнения php разве на машине кэшируются? Я со страницы на страницу не по ссылкам перехожу, а по кнопке из формы
А результаты исполнения php разве на машине кэшируются? Я со страницы на страницу не по ссылкам перехожу, а по кнопке из формы
Сейчас читают
Ситуация в России. (часть 29)
183438
735
Windows как всегда
3404
26
ГОООООООООООООООООООЛ (часть 3)
208192
1000
UdoD
veteran
[цвет:blue]Рђ результаты исполнения php разве РЅР° РјР°С?РёРЅРµ РєСЌС?ируются?[/цвет]
если честно - РЅРµ РїРѕРјРЅСЋ, это может РѕС‚ броузера зависеть. (Кажется, Опера РІСЃРµ-таки РєСЌС?ирует - СЏ РїРѕРјРЅСЋ, что всегда после ее установки ставлю РІ настройках РєСЌС?Р° "check documents" РІ "always" ). Р?ли РѕС‚ настроек промежуточного РїСЂРѕРєСЃРё-сервера.
Можно тупо временно переименовать php-файл, чтобы это исключить.
если честно - РЅРµ РїРѕРјРЅСЋ, это может РѕС‚ броузера зависеть. (Кажется, Опера РІСЃРµ-таки РєСЌС?ирует - СЏ РїРѕРјРЅСЋ, что всегда после ее установки ставлю РІ настройках РєСЌС?Р° "check documents" РІ "always" ). Р?ли РѕС‚ настроек промежуточного РїСЂРѕРєСЃРё-сервера.
Можно тупо временно переименовать php-файл, чтобы это исключить.
Поручик Голицын
шатун сибирский обыкновенный
а теперь по-русски, плиз....
я такие кракозябры читать не умею....
я такие кракозябры читать не умею....
UdoD
veteran
(о, ай м сорри.)
У меня однажды была такая ситуация: сервер (старый Apache под Linux) отдавал страницы так, что они всегда попадали в кэш броузеров, причем php'шные - тоже. В чем дело было уже не помню, я не стал разбираться (сервер был тестовый), а просто подкрутил клиента - изменил настройки кеша Оперы.
А выглядело это действительно с виду странно: мне вываливались из кэша страницы со старыми данными и старым html-кодом (почему я и предположил - может из кэша поднимается страница с другой кодировкой?)
У меня однажды была такая ситуация: сервер (старый Apache под Linux) отдавал страницы так, что они всегда попадали в кэш броузеров, причем php'шные - тоже. В чем дело было уже не помню, я не стал разбираться (сервер был тестовый), а просто подкрутил клиента - изменил настройки кеша Оперы.
А выглядело это действительно с виду странно: мне вываливались из кэша страницы со старыми данными и старым html-кодом (почему я и предположил - может из кэша поднимается страница с другой кодировкой?)
>>Вот только один и тот же "капризный" файл еще и ведет себя по-разному в зависимости от того, были сделаны изменения или нет.
могу предположить, что сделав изменения и отправив данные
- ты то, что отрисовывалось в texarea невольно (не без помощи
браузера, который выставил с бухты-барахты другую, отличную
от твоей, кодировку) получаешь в такой кодировке, которую не ждешь)))
ты думаешь, что тебе придёт koi-8r, а приходит windows-1251...
и изменения в кодировке windows-1251 ты пишешь в файл, который
позже хочешь прочитать как koi-8r. Хотя могет у тя ещё что-нить
не так происходит?
да, попутно... выставление charset в теге META - не гарантирует, что страница
отрисуется именно в той кодировке, что ты указал. Apache может выплюнуть
в поток свою кодировку, и то, что в мета-теге - просто побреется)))
как выход, можешь средствами того же php указывать charset
в отправляемом заголовке .... Как это сделать? - глянь маны по php )))
PS: магии тут нет - это уже давным давно доказано.
есть некорректное использование инструментов )))
и врождённая лень читать маны)))
могу предположить, что сделав изменения и отправив данные
- ты то, что отрисовывалось в texarea невольно (не без помощи
браузера, который выставил с бухты-барахты другую, отличную
от твоей, кодировку) получаешь в такой кодировке, которую не ждешь)))
ты думаешь, что тебе придёт koi-8r, а приходит windows-1251...
и изменения в кодировке windows-1251 ты пишешь в файл, который
позже хочешь прочитать как koi-8r. Хотя могет у тя ещё что-нить
не так происходит?
да, попутно... выставление charset в теге META - не гарантирует, что страница
отрисуется именно в той кодировке, что ты указал. Apache может выплюнуть
в поток свою кодировку, и то, что в мета-теге - просто побреется)))
как выход, можешь средствами того же php указывать charset
в отправляемом заголовке .... Как это сделать? - глянь маны по php )))
PS: магии тут нет - это уже давным давно доказано.
есть некорректное использование инструментов )))
и врождённая лень читать маны)))
Поручик Голицын
шатун сибирский обыкновенный
>>> могу предположить, что сделав изменения и отправив данные
- ты то, что отрисовывалось в texarea невольно (не без помощи
браузера, который выставил с бухты-барахты другую, отличную
от твоей, кодировку) получаешь в такой кодировке, которую не ждешь)))
ты думаешь, что тебе придёт koi-8r, а приходит windows-1251...
На что я опираюсь и чего ожидаю:
Все статичные хтмл-странице на сервере в кодировке кои-8. И шаблоны для пхп-скриптов тоже. И наполнители для шаблонов. Поэтому поначалу я вообще не заморачивался насчет кодировки - браузер сам все прекрасно распознавал и корректно отображал.
И ни разу не было, чтобы он отобразил не в той кодировке. И когда тестировался этот мини-редактор, который мы счас обсуждаем, такого тоже не случалось (то есть ни с одним из тестовых файлов такой хрени не было).
А вот когда начал подсовывать то, что реально нужно - то 3 из 10 файлов косячат.
>>> PS: магии тут нет - это уже давным давно доказано.
есть некорректное использование инструментов )))
И еще есть кривой софт, который имея, казалось бы, одни и те же условия, выдает разный результат.
- ты то, что отрисовывалось в texarea невольно (не без помощи
браузера, который выставил с бухты-барахты другую, отличную
от твоей, кодировку) получаешь в такой кодировке, которую не ждешь)))
ты думаешь, что тебе придёт koi-8r, а приходит windows-1251...
На что я опираюсь и чего ожидаю:
Все статичные хтмл-странице на сервере в кодировке кои-8. И шаблоны для пхп-скриптов тоже. И наполнители для шаблонов. Поэтому поначалу я вообще не заморачивался насчет кодировки - браузер сам все прекрасно распознавал и корректно отображал.
И ни разу не было, чтобы он отобразил не в той кодировке. И когда тестировался этот мини-редактор, который мы счас обсуждаем, такого тоже не случалось (то есть ни с одним из тестовых файлов такой хрени не было).
А вот когда начал подсовывать то, что реально нужно - то 3 из 10 файлов косячат.
>>> PS: магии тут нет - это уже давным давно доказано.
есть некорректное использование инструментов )))
И еще есть кривой софт, который имея, казалось бы, одни и те же условия, выдает разный результат.