Banzai Posted February 20, 2012 Share Posted February 20, 2012 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 More sharing options...
0 Banzai Posted February 20, 2012 Author Share Posted February 20, 2012 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]; Link to comment https://www.neowin.net/forum/topic/1059104-search-a-string-php/#findComment-594668320 Share on other sites More sharing options...
0 Phouchg Posted February 20, 2012 Share Posted February 20, 2012 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] Tekkerson 1 Share Link to comment https://www.neowin.net/forum/topic/1059104-search-a-string-php/#findComment-594668512 Share on other sites More sharing options...
0 Tekkerson Posted February 20, 2012 Share Posted February 20, 2012 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! Link to comment https://www.neowin.net/forum/topic/1059104-search-a-string-php/#findComment-594668518 Share on other sites More sharing options...
0 Banzai Posted February 20, 2012 Author Share Posted February 20, 2012 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. Link to comment https://www.neowin.net/forum/topic/1059104-search-a-string-php/#findComment-594669032 Share on other sites More sharing options...
Question
Banzai
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