• 0

Search a string (php)


Question

Hello I have a string

$str = 'HTTP/1.1 401 Unauthorized Cache-Control: max-age=0 WWW-Authenticate: Digest realm="this web site", nonce="4f4219a0543637c4f", stale="false", algorithm="MD5", qop="auth" Date: Mon, 20 Feb 2012 10:13:23 GMT Server: lighttpd HTTP/1.1 302 Found Cache-Control: max-age=0 Cache-Control: must revalidate Location: u_lastlogin.htm?message=20-02-2012 10:09;0;Web Content-Type: text/html Set-Cookie: session_id=b71b8885254c6e48; discard; security Set-Cookie: loggedin=true;Cache-control: no-cache=set-cookie Date: Mon, 20 Feb 2012 10:13:29 GMT Server: lighttpd ';

and I want to extract session_id, I think this is done with preg_match but I have no idea how to write a regular expression that will extract 'b71b8885254c6e48' any ideas?

Link to comment
https://www.neowin.net/forum/topic/1059104-search-a-string-php/
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Ok sorry for posting figured it out

$result = 'HTTP/1.1 401 Unauthorized Cache-Control: max-age=0 WWW-Authenticate: Digest realm="this web site", nonce="4f4219a0543637c4f", stale="false", algorithm="MD5", qop="auth" Date: Mon, 20 Feb 2012 10:13:23 GMT Server: lighttpd HTTP/1.1 302 Found Cache-Control: max-age=0 Cache-Control: must revalidate Location: u_lastlogin.htm?message=20-02-2012 10:09;0;Web Content-Type: text/html Set-Cookie: session_id=b71b8885254c6e48; discard; security Set-Cookie: loggedin=true;Cache-control: no-cache=set-cookie Date: Mon, 20 Feb 2012 10:13:29 GMT Server: lighttpd ';

preg_match('/session_id=(.*?);/', $result, $matches);

echo $matches[1];

  • 0

I'm being picky but I might add that regular expressions in this case might be suboptimal. There's three things why so: you know the exact string you're looking for, its length is constant and there's no more than a single occurence of it.

echo substr($result, strpos($result, '_id=') + 4, 16);[/CODE]

  • 0

I'm being picky but I might add that regular expressions in this case might be suboptimal. There's three things why so: you know the exact string you're looking for, its length is constant and there's no more than a single occurence of it.

echo substr($result, strpos($result, '_id=') + 4, 16);[/CODE]

Nice one!

  • 0

I'm being picky but I might add that regular expressions in this case might be suboptimal. There's three things why so: you know the exact string you're looking for, its length is constant and there's no more than a single occurence of it.

echo substr($result, strpos($result, '_id=') + 4, 16);[/CODE]

Ah thanks cralias, I thought of doing it like that but couldn't think how to write it.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.