Use preg_replace_callback instead!
preg_replace_callback is better performance than preg_replace with /e.
---------------------------------------------------------------------------------
code

$str="cats i  saw a cat and a dog";
$str1=preg_replace_callback("/(dog|cat|.)/is","call_replace",$str);
echo $str."<BR/>";
echo $str1;
function call_replace($match){
 if(in_array($match[0],array('cat','dog')))
  return $match[0];
 else
  return "";
}

2009/8/24 tedd <tedd.sperl...@gmail.com>:
>> On Sat, Aug 22, 2009 at 12:32 PM, “•ÈýÏÝ“•ÂÔ<danondan...@gmail.com>
wrote:
>>>
>>>  Lets assume I have the string "cats i  saw a cat and a dog"
>>>  i want to strip everything except "cat" and "dog" so the result will be
>>>  "catcatdog",
>>>  using preg_replace.
>>>
>>>
>>>  I've tried something like /[^(dog|cat)]+/ but no success
>>>
>>  > What should I do?
>
> Lot's of ways to skin this cat/dog.
>
> What's wrong with exploding the string using spaces and then walking the
> array looking for cat and dog while assembling the resultant string?
>
> Cheers,
>
> tedd
>
>
> --
> -------
> http://sperling.com  http://ancientstones.com  http://earthstones.com
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to