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
Форумы портала PHP.SU :: Версия для печати :: rawurlencode - как им пользоватся?
Форумы портала PHP.SU » » Вопросы новичков » rawurlencode - как им пользоватся?

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

1. resik - 25 Мая, 2016 - 14:39:37 - перейти к сообщению
Здравствуйте.

Есть ли смысл заменять не зарезервированные символы ( "-" / "." / "_" / "~" ) после функции 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. ?>
2. Bio man - 25 Мая, 2016 - 17:01:43 - перейти к сообщению
Зачем? Какую задачу вы этим решите?
Эти символы трактуются на ровне с буквами латинского алфавита и цифрами, если и заменять, то и их тоже... только непонятно зачем.
(Добавление)
Цитата:
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 все написано.
3. resik - 25 Мая, 2016 - 20:32:24 - перейти к сообщению
Это не столько решение задачи, сколько попытки избежать возможные проблемы связанные с такими урл.

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

Сбивает с толку то, что mediawiki например по каким то не понятным причинам в своих урлах меняет пробелы на _ за место %20 ( стало быть не просто так ).
4. Мелкий - 25 Мая, 2016 - 21:05:18 - перейти к сообщению
Поисковики нормально жрут даже URI, грубо нарушающие стандарты.

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

Для читаемости урла человеком. _ и выглядит как _, нет необходимости воспринимать отличие %20 от %26 того же.
Название статьи и её url хранятся (и порой редактируются) раздельно как раз поэтому.
5. resik - 25 Мая, 2016 - 22:46:02 - перейти к сообщению
Мелкий пишет:
Поисковики нормально жрут даже URI, грубо нарушающие стандарты.

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

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


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

Конечно если это не недобраузер IE8 Радость

 

Powered by ExBB FM 1.0 RC1