2012-08-23 9 views
8

Ho bisogno dell'URL codificato per l'elaborazione in una delle API. Ma richiede URL completo codificatoCodifica l'url compreso il trattino (-) e il punto (.) In php

Per esempio:

URL da

http://test.site-raj.co/999999?lpp=1&px2=IjN 

a URL codificato come qui di seguito

http%3a%2f%test%site%2draj%2eco%2f999999%3flpp%3d1%26px2%3dIjN 

ho bisogno di ogni altro simbolo da codificare anche Dot (.) e trattino (-) come sopra. Per favore fatemi sapere qualsiasi funzione in php/codice per farlo.

Grazie.

+0

Il tuo esempio non ha trattino in esso –

+1

E allora? @ MikeB – 11684

+3

@ 11684 Abbiamo bisogno di sapere cosa si aspetta che i trattini vengano tradotti. Allo stesso modo con i punti .. li ha appena sostituiti con segni di percentuale nella sua uscita prevista. –

risposta

14

Prova questo. All'interno di una funzione forse se lo si utilizza più di una volta ...

$str = 'http://test.site.co/999999?lpp=1&p---x2=IjN'; 
$str = urlencode($str); 
$str = str_replace('.', '%2E', $str); 
$str = str_replace('-', '%2D', $str); 
echo $str; 
+0

ya potrebbe andare bene ma se esistono altri caratteri speciali significa anche come farlo? –

8

Ciò codificare tutti i caratteri che non sono lettere o numeri normali. È ancora possibile decodificare questo con l'urldecode standard o rawurldecode:

function urlencodeall($x) { 
    $out = ''; 
    for ($i = 0; isset($x[$i]); $i++) { 
     $c = $x[$i]; 
     if (!ctype_alnum($c)) $c = '%' . sprintf('%02X', ord($c)); 
     $out .= $c; 
    } 
    return $out; 
} 
-3

Perché non utilizzare rawurlencode

ad esempio rawurlencode("http://test.site-raj.co/999999?lpp=1&px2=IjN")

+3

http://www.php.net/rawurlencode dice Restituisce una stringa in cui tutti i caratteri non alfanumerici ad eccezione di '-_. ~' Sono stati sostituiti con un segno di percentuale (%) seguito da due cifre esadecimali. Questo non è ciò che l'OP chiedeva. –

Problemi correlati