Кавычки и GET.





Есть проблема передачи одинарных - ['] кавычек методом GET

пример: <a rel="nofollow" href= "http://site.com/it's_home_page.php">Link to nowhere</a>
проблема в том, что с строке поиска конечный результат будет:

http://site.com/it - [до кавычки, а дальше срезает остаток строки]

Что делать?

- Варианты кодирование строки типо base64encode() [PHP] не подходят.
- Варианты ответов, типо "делай без кавычек" - тоже не подходят.
  • 3 апреля 2009, 15:35
  • neznau

Ответы (8)

RSS
+
0
string urlencode ( string str )
This function is convenient when encoding a string to be used in a query part of a URL, as a convenient way to pass variables to the next page.

string urldecode ( string str )
Decodes any %## encoding in the given string.

Стандартные методы и функции - почему они не подходят?
avatar

epo-it

  • 28 июня 2009, 11:05
+
0
Смотрим как делает яндекс - делает урл_енкоде. Что будет если яндексу в строке адреса заменить %27 на '

http://www.yandex.ru/yandsearch?stype=www&nl=0&text=it%27s_home_page
на вот такое
http://www.yandex.ru/yandsearch?stype=www&nl=0&text=it's_home_page

яндекс обрабатывает совершенно нормально и такое. Вывод? Очевидно вы неправильно обрабатываете получаемую строку, потому что строка вида

<a href="http://images.yandex.ru/yandsearch?text=it's_home_page&stype=image">«it's_home_page» в картинках</a>

совершенна нормальна и правильно передается GET.
avatar

rmalay

  • 28 мая 2009, 15:37
+
0
SoloNifer, при чём здесь вообще PHP и GET? Сделайте тестовый файл test.html, содержащий единственную строку:
<a href="http://site.com/it's_home_page.php">Link to nowhere</a>
Откройте в браузере, щёлкните на ссылку, посмотрите результат. В IE и Opera ничего не обрезается. Если в Вашем браузере обрезается - вероятно, это его "особенность".

PS: А вообще-то в html, насколько я понимаю, правильно писать так:
<a href="http://site.com/it&lsquo;s_home_page.php">Link to nowhere</a>
avatar

aeva

  • 22 июля 2009, 21:57
+
0
* в строке поиска - [в строке адресса]
avatar

chicago1111

  • 8 июня 2009, 14:05
+
0
[Iceman345]

- Варианты кодирование строки типо base64encode() [PHP] не подходят.

urlencode ( string str ) - не подходит!

Нужно передать так, как есть - без альтернативных решений

<a href="http://site.com/it's_home_page.php">Link to nowhere</a>
и получить
adress: http://site.com/it's_home_page.php

Спасибо
avatar

belportal-info

  • 20 июля 2009, 10:18
+
0
То, что вы хотите сделать, не противоречит правилам HTML и URL. В двойных кавычках можно размещать одиночную. И кодировать в URL тоже можно. Проблема скорее всего в браузере.
avatar

ektoo

  • 6 апреля 2009, 20:41
+
0
Возможно, проблема в обработке запроса сервером. Похоже, после получения корректного запроса он делает некорректное перенаправление.
avatar

ennis-pter

  • 16 июня 2009, 12:56
+
0
прекратите пудрить человеку мозг.

Передавайте вот так:


http://site.com/it%3Cs_home_page.ph
avatar

neg

  • 19 июня 2009, 05:08

Только зарегистрированные и авторизованные пользователи могут отвечать.