Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: rawurlencode - как им пользоватся?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
resik
Отправлено: 25 Мая, 2016 - 14:39:37
Post Id



Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Здравствуйте.

Есть ли смысл заменять не зарезервированные символы ( "-" / "." / "_" / "~" ) после функции rawurlencode для определенных частей урла. Интересует мнение тех, кто сталкивался с данным вопросом.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $name = 'новая-._~статья';
  4.  
  5. $url = rawurlencode( $name );
  6.        
  7. // RFC 3986 - 2.3.  ( replace unreserved characters )
  8. $url = str_replace( array( '-', '.', '_', '~' ), array( '%2D', '%2E', '%5F', '%7E' ), $url );
  9.  
  10. echo '<a href="/article/'.$url.'/">'.$name.'</a>';
  11.  
  12. ?>

(Отредактировано автором: 25 Мая, 2016 - 15:21:33)

 
 Top
Bio man
Отправлено: 25 Мая, 2016 - 17:01:43
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Зачем? Какую задачу вы этим решите?
Эти символы трактуются на ровне с буквами латинского алфавита и цифрами, если и заменять, то и их тоже... только непонятно зачем.
(Добавление)
Цитата:
For example, the octet corresponding to the tilde ("~") character is often encoded as "%7E"
by older URI processing implementations; the "%7E" can be replaced by
"~" without changing its interpretation.

В RFC все написано.
 
 Top
resik
Отправлено: 25 Мая, 2016 - 20:32:24
Post Id



Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Это не столько решение задачи, сколько попытки избежать возможные проблемы связанные с такими урл.

Перефразирую свой вопрос: одинаково ли будут относится поисковики к данным символам в урл, будь то они как есть или замененные на шестнадцатеричную пару?

Сбивает с толку то, что mediawiki например по каким то не понятным причинам в своих урлах меняет пробелы на _ за место %20 ( стало быть не просто так ).

(Отредактировано автором: 25 Мая, 2016 - 20:36:22)

 
 Top
Мелкий Супермодератор
Отправлено: 25 Мая, 2016 - 21:05:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Поисковики нормально жрут даже URI, грубо нарушающие стандарты.

resik пишет:
Сбивает с толку то, что mediawiki например по каким то не понятным причинам в своих урлах меняет пробелы на _ за место %20 ( стало быть не просто так ).

Для читаемости урла человеком. _ и выглядит как _, нет необходимости воспринимать отличие %20 от %26 того же.
Название статьи и её url хранятся (и порой редактируются) раздельно как раз поэтому.


-----
PostgreSQL DBA
 
 Top
resik
Отправлено: 25 Мая, 2016 - 22:46:02
Post Id



Новичок


Покинул форум
Сообщений всего: 51
Дата рег-ции: Дек. 2013  


Помог: 0 раз(а)




Мелкий пишет:
Поисковики нормально жрут даже URI, грубо нарушающие стандарты.

resik пишет:
Сбивает с толку то, что mediawiki например по каким то не понятным причинам в своих урлах меняет пробелы на _ за место %20 ( стало быть не просто так ).

Для читаемости урла человеком. _ и выглядит как _, нет необходимости воспринимать отличие %20 от %26 того же.
Название статьи и её url хранятся (и порой редактируются) раздельно как раз поэтому.


Какой в этом смысл если в современных браузерах в адресной строке и при наведении на подобные ссылки как бы уже происходит rawurldecode.

Конечно если это не недобраузер IE8 Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB