| |
|
|
| | Никак не могу разобраться, как устроена связка PHP, Apachy, MySql. И особенно, какая роль у PHP.
Но такие обобщённые вопросы смысла нет задавать. Понимание общего всё равно складывается из частных деталей, когда их накапливается достаточно. Поэтому, не пишите общих фраз мне в ответ, а лучше, если хотите помочь, как можно детальнее ответе на эти вопросы:
1)Если мой скрипт получает методом POST строку, то есть ли способ определить её кодировку? Хотя бы какой-нибудь очень искусственный? Строку, например, прислал кто-то, вообще не из моей формы, а своим скриптом.
2)У меня есть приложение, работающее с базой данных, и я хочу, чтобы ещё одно приложение работало с той же базой. Однако для второго приложения я хочу перенастроить базу (кодировку указать). Может ли это нарушить работу первого приложения? Если да, то как средствами PHP этого избежать. Я понимаю, что при создании таблицы можно указывать кодировку, но меня сейчас интересует, как это сделать средствами PHP. | |
| |
|
|
| |
|
|
| |
для: Eugene77
(19.06.2007 в 07:05)
| | | 1. если вам кодировка неизвестна то и программе тоже | |
| |
|
|
| |
|
|
| |
для: bronenos
(19.06.2007 в 07:08)
| | | 1. "очень искусственным способом"-Разумеется,можно :-) средствами Php и не такие задачи решаются...Когда передо мной такой проблема возник,за полчаса написал 1.3 кб скриптик на основе статистики. | |
| |
|
|
| |
|
|
| |
для: Ralph
(19.06.2007 в 08:09)
| | | ну или искать в некотороый последовательности коды символов и на их основе определять кодировку) | |
| |
|
|
| |
|
|
| |
для: Eugene77
(19.06.2007 в 07:05)
| | | Как думаете, можно поступить так?
<?php
function detect($string)
{
$win=iconv('windows-1251','koi8-r',$string);
$win_test=iconv('koi8-r','utf-8',$win);
if ($string==iconv('utf-8','windows-1251',$win_test))
return 'win';
else return 'xz';
}
?>
|
это не проверенный скрипт, а просто идея. | |
| |
|
|
| |
|
|
| |
для: disable
(19.06.2007 в 14:32)
| | | Нет, нельзя.
Во-первых, переводом строки в неизвестной кодировке в качестве UTF-8 Вы можете получить false, т.к. UTF-8 многобайтовая кодировка.
Во-вторых, с чего Вы вообще решили, что подобным образом вообще что-то можно выяснить?
Одни байты заменятся другими. И не более. | |
| |
|
|
| |
|
|
| |
для: Unkind
(19.06.2007 в 15:37)
| | | Да , не во всех случаях срабатывает :( | |
| |
|
|
| |
|
|
| |
для: disable
(19.06.2007 в 16:21)
| | | Ясненько...
А сообщение POST несёт в себе только саму строку или ещё какую-то вспомогательную информацию можно из него извлечь? Может быть, о кодировке посылающей страницы, или ещё о чём-нибудь?
Вообще, что этот "POST" из себя представляет? Как его подробнее рассмотреть? Ссылочку подскажете?
Ну, и второй вопрос остался...
Спасибо всем, кто уже откликнулся! Чуть-чуть яснее становится... | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.06.2007 в 07:21)
| | | просто способ передачи данных
а кодировку можно поискать в заголовке Content-Type | |
| |
|
|
| |
|
|
| |
для: bronenos
(20.06.2007 в 08:26)
| | | Увы.
Там её не будет.
Кодировка будет той же, что и у страницы с формой, с которой был издан запрос.
Точнее, сервер вправе ожитать её той же.
А любые символы, за её рамками - в виде html-эквивалентов. | |
| |
|
|
| |
|
|
| |
для: Trianon
(20.06.2007 в 10:06)
| | | >Кодировка будет той же, что и у страницы с формой, с которой был издан запрос.
>Точнее, сервер вправе ожитать её той же.
Вот и не могу я понять этого. Как-то не стыкуется у меня в голове. Ведь это получается тогда что сервер должен помнить кодировку всех отосланных страниц. А как долго он её будет помнить?
А что если вообще не с этого сервера страница ушла?
Я бы понял если бы просто html-эквиваленты передавались, как, кажется, в случае GET
и происходит. Хотя может я опять что-то путаю... Но тогда это было бы понятно, а так пока работа метода POST остаётся в тумане.
Кстати, какой командой можно заголовки посмотреть? | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.06.2007 в 19:47)
| | | get_all_headers() | |
| |
|
|
| |
|
|
| |
для: Ralph
(20.06.2007 в 20:56)
| | | Fatal error: Call to undefined function get_all_headers() in C:\Program Files\PHP Expert Editor 4.1\php9B.tmp on line 3 | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.06.2007 в 21:12)
| | | apache_request_headers()
или
apache_headers()
не помню точно | |
| |
|
|
| |
|
|
| |
для: Eugene77
(20.06.2007 в 21:12)
| | | ... мать,извиняюсь,конечно же getallheaders().Подробнее- http://ipm.kstu.ru/it/doc/php42/f/getallheaders.html | |
| |
|
|
| |
|
|
| |
для: Ralph
(20.06.2007 в 21:47)
| | | Спасибо | |
| |
|
|