Talk about a confusing-looking hack, but this one seemed to work to take
care of the hex values.

$value =~ s/(\%){1}(\d|[a-fA-F]){1}(\d|[a-fA-F]){1}/ /g;


Scot R.
inSite


-----Original Message-----
From: steve ryan [mailto:[EMAIL PROTECTED]
Sent: Sunday, June 08, 2003 5:38 PM
To: [EMAIL PROTECTED]
Subject: Simple character replace problem


Hi,

I was wondering if someone could help me with this as it is driving me
insane!

I have a CGI script which writes a series of form fields to a tab-delimited
file.

I read in the fields and then replace certain characters (like commas etc.)

The problem is -

1. My "+" symbols are not being replaced (i.e. the spaces in the form)
2. My HEX/Ascii conversion isn't working (i.e. i am getting things like %2C)

Here is my conversion code -

# replace new lines with a space
                        $value =~ s/\n/ /g;
# remove hard returns
                        $value =~ s/\r//g;
# remove ^M's
                        $value =~ s/\cM//g;
# replace commas with a space
                        $value =~ s/,/ /g;
# replace + with a space
                        $value =~ tr/+/ /;
# or sometimes $value =~ s/\+/ /g;

# replace hex pairs back to it's acsii equivalent
                        $value =~
s/%([\da-fA-F][\da-fA-F])/pack("C",hex($1))/eg;

Any idea why this isn't working?

Thanks,
Steve

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to