Probably not the best way, but this is how I did it.

Code:
on *:TEXT:*:#: {
  if ($1 == $+(%c,player)) {
    var %name = $replace($2-,$chr(32),+)
    if ($sock(player)) sockclose player
    sockopen player herald.uthgard-server.net 80
    sockmark player # $+(/daoc/sig.php?name=,%name,&txt=on)
  }
}

on *:SOCKOPEN:player:{
  sockwrite -nt $sockname GET $gettok($sock(player).mark,2,32) HTTP/1.1
  sockwrite -nt $sockname Accept-Language: en-us
  sockwrite -nt $sockname User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; rv:1.7.3) Gecko/20040913 Firefox/0.10.1
  sockwrite -nt $sockname Host: herald.uthgard-server.net
  sockwrite -nt $sockname Connection: keep-alive
  sockwrite -t $sockname $str($crlf,2)
}

on *:SOCKREAD:player:{
  if ($sockerr > 0) { return }
  var %p_
  sockread %p_
  if ($numtok(%p_,61) = 2) { set -e $+(%,p.,$gettok(%p_,1,61)) $gettok(%p_,2,61) }  
}
on *:sockclose:player:{
  msg $gettok($sock(player).mark,1,32) %p.name - $+($chr(40),%p.guild,$chr(41)) - %p.level %p.race %p.class - RR %p.realmlevel
  unset %p.*
}


This actually makes a variable for every line of data in the file that has the format: item=data

The variable is named %p.<item>. So name=Hymnia would be %p.name = Hymnia. It unsets the variables when the socket closes.