[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Символ "+"
Givoi
здравствуйте, возникла проблема, при записи в файл при помощи php скрипта, символ "+" не записывается, вместо него записывается , хоть в запросе символ + присутствует



Спустя 9 минут, 2 секунды (6.02.2011 - 19:02) Invis1ble написал(а):
здесь эктрасенсов нет... код в студию
и еще:
Цитата
вместо него записывается

что записывается? непонял

Спустя 4 минуты, 12 секунд (6.02.2011 - 19:06) Givoi написал(а):
записывается пробел

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
$xml = $_GET['xml'];
$dir = $_GET['dir'];
$text = iconv("windows-1251","UTF-8", $xml);
$fh = fopen($dir, "w+");
$success - fwrite($fh, $text);
print "Файл заполнен";
fclose($fh);


и часть запроса

title=%221+1%22%20

Спустя 26 минут, 9 секунд (6.02.2011 - 19:32) Sopromatenot написал(а):
PHP разбирает эту строку и помещает все GET-параметры в специальный глобальный массив $_GET. Разбор этой строки, помимо отделения имени и значения параметра, а так же отделения параметров друг от друга, заключается в так называемом URL-декодировании. Оно подразумевает замену символов "+" на пробелы и декодировании символов заданных при помощи символа "%". URL-кодирование применяется в отношении не ASCII символов, c тем чтобы их тоже можно было передавать в строке запроса, а так же в отношении специальных символов, чтобы нивелировать их особое назначение.

Вы можете сами осуществлять URL-кодирование и декодирование строк при помощи функций urlencode() и urldecode() и, rawurlencode() и rawurldecode(). Так же в PHP 5 появилась комплексная функция http_build_query(), которая из ассоциативного массива создает строку URL-кодированных переменных. Эту строку можно поместить и в строку URL (если она не очень длинная), и в тело запроса. В первом случае это будут GET-параметры, а во втором POST-параметры.

Из Googl'я

Спустя 9 минут, 16 секунд (6.02.2011 - 19:42) inpost написал(а):
Givoi
Передавай методом POST параметры, их и записывай. Ну или urldecode =)

Спустя 44 минуты, 3 секунды (6.02.2011 - 20:26) Invis1ble написал(а):
а я вобще не понял.... что это за синтаксис в коде? у тебя ж там parse error будет.....

Спустя 1 час, 34 минуты, 27 секунд (6.02.2011 - 22:00) Givoi написал(а):
нет, декодинг не помогает, тут фишка вот в чем: мне от флешки передается запрос, в котором есть +, когда я его принимаю вот так
$xml = $_GET['xml'];

то плюс уже теряется, щас порылся и нашёл что из флешки запрос может выйти при помощи url vars, всё бы отлично только в запросе появляется аперсент:

vov.ru/create.php?&xml=123...

что делать?
может как-нибудь можно запрос принять полностью, найти в нем первый аперсент и удалить его?

Спустя 25 секунд (6.02.2011 - 22:01) Dron19 написал(а):
Ты что мозила? Так промазать это ппц :D




$success - fwrite($fh, $text);


Спустя 1 минута, 34 секунды (6.02.2011 - 22:02) Dron19 написал(а):
блин, да заэкранируй ты этот плюс и все ок должно быть

Спустя 7 минут, 44 секунды (6.02.2011 - 22:10) Givoi написал(а):
я наверное не могу объяснить что имею, в адресной строке + есть, а после
$xml = $_GET['xml'];

в $xml плюса уже нет. вот и не знаю что кодировать(

Спустя 4 минуты, 4 секунды (6.02.2011 - 22:14) Dron19 написал(а):
ппц, сказал же тебе, + заэкранируй в адресной строке вот так \+
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.