PDA

Visualizza la versione completa : escape di caratteri


Claudio Vituzzi
28-12-2004, 04:54
mi semba che per fare l'escape di caratteri di un indirizzo we si usa:



s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;


giusto?

come si fa il contrario?

ovvero preparare una stringa che poi andra in <a></a>

Grazie

LordSaga640
28-12-2004, 23:46
per fare l'escape con una funzione carina io preferirei questa:


$val=~s/%([A-Fa-f\d]{2})/chr hex $1/eg;


per fare l'inverso.
Dipende da quali caratteri vuoi fare l'escape.
L'operazione inversa potrebbe essere:


$ciao=~ s/([^A-Za-z])/"\%".unpack("H*",$1)/ge;

Tutto quello che non č nell'insieme di A-Za-z trasformarlo in %(relativo codice esadecimale).
Duqnue dunque si potrebbe riscrivere cosė:


$ciao=~ s/([^\w ])/"\%".unpack("H*", $1)/seg;
$ciao=~ tr/ /+/;


Se non sbaglio al posto degli spazzi che sempre un "+", se proprio vogliamo essere pignoli :P

Ciao

Claudio Vituzzi
29-12-2004, 00:28
Grazie mille...

(ma lo spazio non era %20 ?)

Loading