PHP中有一些encodeURI()函数不能编码:[email protected]#$&*()=:/,;?+'
?encodeURI()in PHP?
19
A
回答
29
我使用这个现在
function encodeURI($url) {
// http://php.net/manual/en/function.rawurlencode.php
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI
$unescaped = array(
'%2D'=>'-','%5F'=>'_','%2E'=>'.','%21'=>'!', '%7E'=>'~',
'%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')'
);
$reserved = array(
'%3B'=>';','%2C'=>',','%2F'=>'/','%3F'=>'?','%3A'=>':',
'%40'=>'@','%26'=>'&','%3D'=>'=','%2B'=>'+','%24'=>'$'
);
$score = array(
'%23'=>'#'
);
return strtr(rawurlencode($url), array_merge($reserved,$unescaped,$score));
}
它基本上rawurlencodes一切,然后解码几回事情(如Zanlok在他的评论暗示)。这应符合Mozilla规格的encodeURI。
+0
真的很有用... – 2014-07-25 07:43:27
14
这里有一个备用版本的基础上MDN规格:
function encodeURI($uri)
{
return preg_replace_callback("{[^0-9a-z_.!~*'();,/?:@&=+$#-]}i", function ($m) {
return sprintf('%%%02X', ord($m[0]));
}, $uri);
}
相关问题
- 1. 单引号JS encodeuri vs PHP rawurlencode
- 2. 反向函数encodeURI()
- 3. Spotify Apps Api - encodeURI/escape
- 4. jQuery encodeURI href不工作
- 5. 应该encodeURI永远使用?
- 6. getJSON in jquery&json_encode in PHP&headers
- 7. isset in php not working in angularjs
- 8. php ereg_replace in php 5.3
- 9. 在php中解码使用encodeURI编码的文本
- 10. Pos Tagger in PHP
- 11. Authorize.net:getTransactionDetails in PHP
- 12. Try/catch in PHP
- 13. PHP Enter In textbox
- 14. shell_exec()in PHP
- 15. Form Fix in php
- 16. preg_match in php
- 17. php include_paths in htaccess
- 18. Lucene.net index in php
- 19. Curl Post In Php
- 20. Foreach in foreach [PHP]
- 21. if if in PHP
- 22. LIMIT in PHP mssql_query?
- 23. Coldfusion isDefined()in PHP
- 24. array in loop php
- 25. onclick javascript in PHP
- 26. preg_match in php
- 27. PHP preg_replace in javascript
- 28. php $ in javascript
- 29. - undefined index - in php
- 30. MongoDb:db.getUser()in PHP
所以,*不要*您希望它编码的字符? – 2011-02-08 04:37:37
你可能需要在这里定制并解码出你想保留的字符,如果这是一个简短列表 – zanlok 2011-02-08 05:53:41