webForumDet fria alternativet

Plocka ut information ur en logg

Webbutveckling

3 svar · 289 visningar · startad av tronez

Medlem sedan juli 2001728 inlägg
Frågan#1

Mja, inte så bra rubrik kanske, men över till mitt problem.

Jag håller på att parsa en fil i PHP och jag har fått ut en del av det jag vill ha.

Detta är det jag vill plocka ur information ur

XX.XXX.XX.XX - - [07/Oct/2005:20:10:31 +0200] "GET /index.php?kid=1&ref=http://www.test.com HTTP/1.1" 404 301

Det jag vill gära nu är att plocka ut den URL:en i qurystringen "ref" och lägga den i en variabel. Så långt har jag kommit att den plockar ut det som finns efter GET. Men jag e rätt värdelös på RegExp och kan inte lista ut hur jag ska få tag på URL:en

preg_match("/\"GET (.[^\"]+)/", $all, $match);
			$http = $match[1];
			$link = explode(" ", $http);
Koden ovan ger följande resultat

/index.php?kid=1&ref=http://www.test.com

Vill jag ska bli

http://www.test.com

Helst av allt skulle jag vilja göra en regexp där jag inte kollar efter GET utan /index.php , men jag har inte fått det att funka :(

Hoppas nån kan hjälpa mig på rätt väg

Medlem sedan dec. 20025 483 inlägg
#2
preg_match("\/index.php.*?ref=([^\s]+)", $all, $match);
			$link = $match[1];
Medlem sedan juli 2001728 inlägg
#3

Tyvärr får jag inga matchningar trots att det finns sånt som ska matchas i loggen :(

har provat med följande.

  	
$test = '/index.php?ref=http%3A//test.com/';  
preg_match("\/index.php.*?ref=([^\s]+)",$test, $match);                     
echo $match[1];
Medlem sedan dec. 20025 483 inlägg
#4
preg_match("/\/index.php.*?ref=([^\s]+)/",$test, $match);
254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)