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和Ext.urlDecode
- 3. NodeJS encodeURI爲ß
- 4. 反向函數encodeURI()
- 5. AJAX FORMDATA()VS是encodeURI()
- 6. encodeURI函數在JavaScript
- 7. Spotify Apps Api - encodeURI/escape
- 8. 相當於Javascript的encodeURI?
- 9. 應該encodeURI永遠使用?
- 10. JavaScript的是encodeURI()輸出
- 11. jQuery encodeURI href不工作
- 12. getJSON in jquery&json_encode in PHP&headers
- 13. isset in php not working in angularjs
- 14. php ereg_replace in php 5.3
- 15. 在php中解碼使用encodeURI編碼的文本
- 16. Excel Pivot in PHP?
- 17. Response.End in PHP
- 18. get_called_class in php 5.2 *
- 19. PHP Enter In textbox
- 20. Authorize.net:getTransactionDetails in PHP
- 21. Pos Tagger in PHP
- 22. array in loop php
- 23. Form Fix in php
- 24. - undefined index - in php
- 25. Curl Post In Php
- 26. 24bit int in php
- 27. 'Unescaping'strings in PHP
- 28. js getTimezoneOffset()in php
- 29. DateTime TimeZone in php
- 30. php undefined index in
所以,*不要*您希望它編碼的字符? – 2011-02-08 04:37:37
你可能需要在這裏定製並解碼出你想保留的字符,如果這是一個簡短列表 – zanlok 2011-02-08 05:53:41