Esiste qualche funzione encodeURI() in PHP che non codifica: [email protected]#$&*()=:/,;?+'
?encodeURI() in PHP?
risposta
Sto usando questo ora
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));
}
E rawurlencodes praticamente tutto, e quindi decodifica alcune cose indietro (come Zanlok suggerito nel suo commento). Questo dovrebbe essere conforme alle specifiche Mozilla di encodeURI.
Davvero utile ... –
Puoi aggiungere ''% 5B' => '[', '% 5D '=>'] ''ai caratteri riservati che devono corrispondere a RFC3986 (parentesi IPV6) – mems
@mems, grazie per il suggerimento. Sto seguendo le specifiche MDN: aspetterò che vengano aggiornate. – commonpike
Ecco una versione alternativa basata su MDN spec:
function encodeURI($uri)
{
return preg_replace_callback("{[^0-9a-z_.!~*'();,/?:@&=+$#-]}i", function ($m) {
return sprintf('%%%02X', ord($m[0]));
}, $uri);
}
Codice meraviglioso ... –
Hai dimenticato il trattino '-' – disfated
@disoddisfatto! Passò inosservato ... Grazie per avermelo detto, ho appena aggiustato la risposta per includerlo. :) –
- 1. dovrebbe mai essere usato encodeURI?
- 2. Devo usare encodeURI o encodeURIComponent per gli URL di codifica?
- 3. come posso javascript decodeURI in PHP?
- 4. in PHP
- 5. Puoi inserire PHP in PHP con echo?
- 6. Compilare in PHP PHP con UCLIBC
- 7. Come aggiornare PHP in RAD PHP XE2
- 8. PHP mangia linefeed in modalità mista php/testo in chiaro
- 9. funzione amico in php?
- 10. Ritaglia immagine in PHP
- 11. variabili variabili in PHP
- 12. Feed RSS in PHP
- 13. Esecuzione javascript in PHP
- 14. array globale in php
- 15. Che cos'è ":" in PHP?
- 16. Cosa significa $ in PHP?
- 17. uscita un'immagine in PHP
- 18. Che cos'è = & in PHP?
- 19. Validazione in Redbean PHP
- 20. codifica substr_replace in PHP
- 21. Client WebSocket in PHP?
- 22. Confondere if in php
- 23. Modifica endianness in PHP
- 24. Installazione dell'estensione in PHP
- 25. Utilizzo dell'intestazione in PHP
- 26. Response.End in PHP
- 27. Cosa significa @ in PHP?
- 28. Cosa significa ":" in PHP?
- 29. cURL riprova in PHP
- 30. Cosa fa === in PHP
Quindi, quali caratteri * non * si vuole codificare? –
potresti dover personalizzare qui e decodificare i caratteri che desideri conservare, se questo è un elenco breve – zanlok