Toon posts:

[Perl+CGI] Form Cleanup

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb met Perl en CGI een online experiment opgezet. Nu worden de antwoorden opgeslagen, maar ik moet die output opschonen.

code:
1
2
3
4
5
6
$lines[$k] =~ s/&/\t/gi;
$lines[$k] =~ s/\+/ /gi;
$lines[$k] =~ s/\%2C/\,/g;
$lines[$k] =~ s/\%3F/\?/g;
$lines[$k] =~ s/\%40/\@/g;
$lines[$k] =~ s/\%22/\'/g;


Nu moeten er veel meer karakters worden gemapped. Heeft iemand een complete lijst met conversies?

  • muba
  • Registratie: April 2002
  • Laatst online: 19-10-2013

muba

Prince of Persia!

kijk eens naar de documentatie van de CGI module, die doet dat automatisch.

Reporter: Mister Gandhi, what do you think of western civilisation?
Gandhi: I think it would be a good idea


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Kan je niet: cgi.escape() doen?

Going for adventure, lots of sun and a convertible! | GMT-8


Verwijderd

Topicstarter
Ik heb mijn resultaten al opgeslagen op mijn eigen manier. Nu wil ik die bestanden post-processen. Het is een kwestie van maken van regels voor het omzetten naar punctuatie karakters. Daar zijn er niet zoveel van...ik kan echter geen lijstje vinden om CGI output op te schonen.

  • Soultaker
  • Registratie: September 2000
  • Nu online
Het is gewoon de beschrijving van een 8-bits code point, in hexadecimale notatie. Er zijn dus geen beperkt aantal karakters (nou ja, wel beperkt door de 8-bit character set natuurlijk); in principe zijn alle karakters mogelijk.

Je moet dus gewoon het getal dat na de % komt parsen, en het bijbehorende karakter weergeven. Zou met een reguliere expressie zo bijvoorbeeld kunnen:
Perl:
1
s/[%]([0-9a-fA-F]{2})/pack C, hex $1/eg

Verwijderd

Topicstarter
Soultaker schreef op maandag 25 juni 2007 @ 23:42:
Het is gewoon de beschrijving van een 8-bits code point, in hexadecimale notatie. Er zijn dus geen beperkt aantal karakters (nou ja, wel beperkt door de 8-bit character set natuurlijk); in principe zijn alle karakters mogelijk.

Je moet dus gewoon het getal dat na de % komt parsen, en het bijbehorende karakter weergeven. Zou met een reguliere expressie zo bijvoorbeeld kunnen:
Perl:
1
s/[%]([0-9a-fA-F]{2})/pack C, hex $1/eg
Bedankt voor je reactie. Jouw reguliere expressie werkt niet in Perl. De hexidecimale notatie wordt dan niet vervangen met het bijbehorende karakter. Iemand anders nog een idee?

  • Soultaker
  • Registratie: September 2000
  • Nu online
Hmm, hoezo niet? Hoe test je het dan? Als ik doe:
Perl:
1
2
3
$x = "dit%20is%20een%20test.%0a";
$x =~ s/[%]([0-9a-fA-F]{2})/pack C, hex $1/eg;
print $x

Dan print dat netjes "Dit is een test." op een nieuwe regel.

[ Voor 5% gewijzigd door Soultaker op 27-06-2007 15:50 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op woensdag 27 juni 2007 @ 13:37:
[...]


Bedankt voor je reactie. Jouw reguliere expressie werkt niet in Perl. De hexidecimale notatie wordt dan niet vervangen met het bijbehorende karakter. Iemand anders nog een idee?
Je wilt dus een kant en klare oplossing gepresenteerd krijgen of een complete lijst met conversies?

Sorry maar zo werkt het hier niet. Hier in PRG draait het om het zelf ontwikkelen en zelf eerst wat uit te proberen. Indien je dat wel hebt gedaan dan heb je dat in dit geval totaal niet aangegeven. Zo mist er bijv. welke zaken je nu allemaal zelf hebt geprobeerd en wat daar niet mee lukte. Alleen code geven en vervolgens vragen om een kant en klare oplossing is niet de bedoeling.

Lees voor een eventueel volgend topic aub Programming Beleid en met name Programming Beleid - De Quickstart eens door zodat je weet wat we hier van een topicstart verwachten. Gezien je eerste vraag om een complete lijst en je melding dat een aangeleverde oplossing niet werkt en je niet de moeite lijkt te nemen om het zelf nog te fixen gaat deze dicht.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.