Re: EREG PROBLEM

From: Date: Fri, 13 Sep 2002 22:28:36 +0000
Subject: Re: EREG PROBLEM
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-116324@lists.php.net to get a copy of this message
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On September 13, 2002 15:59, Georgie Casey wrote: > input variable is as follows: ... > statement is > $search = > ereg('http://www.server.com/data/anim/(.+).gif', $input, > $results); > > returns the full string from 82007 onwards I bet that it captures everything up to '.." hspace="4" vspace="2"</a>' -- by default regular expressions in PHP are 'greedy' - they try to match as much of a pattern as possible. Also, ereg() only captures the first match for the pattern - not all matches globally. To do this, use preg_match_all() preg_match_all( /* the ? after the + makes the match non-greedy */ '{http://www.server.com/data/anim/(.+?).gif}', $input, $matches ); The second element of the $matches array will contain another array that has all of the file name matches in it. Use var_dump($matches) to see the full contents of the array. Check the manual entry on preg_match_all for more information on what is going on in the regular expression. Cheers! --zak -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE9gmaUb6QONwsK8bIRAvj6AJ9Zo7smGSUHHB/u8d6sa1pOe8twiQCgjfO6 PydHz4u1tuF/Oc9qxItp8bQ= =ilHI -----END PGP SIGNATURE-----

« previous php.general (#116324) next »