in reply to Re: Re3: Regex: get first N characters but break at whitespace
in thread Regex: get first N characters but break at whitespace

Your idea relaxes the requirements somewhat as it uses literal space instead of whitespace. Furthermore you might be left with extra spaces at the end of your string.

If both of these things don't matter then you are easily fastest like this (rindex can take a starting index as its 3rd argument!): $chunk = substr($string,0,rindex($string,' ',200));

The benchmark showes a huge gain - but of course it's a bit unfair :) considering the different requirements ...

Benchmark: running japhy, rindex, tye, each for at least 3 CPU seconds +... japhy: 2 wallclock secs ( 3.00 usr + 0.00 sys = 3.00 CPU) @ 24 +4478.67/s (n=733436) rindex: 3 wallclock secs ( 3.00 usr + 0.00 sys = 3.00 CPU) @ 84 +2494.33/s (n=2527483) tye: 4 wallclock secs ( 3.39 usr + 0.00 sys = 3.39 CPU) @ 30 +5243.95/s (n=1034777)

-- Hofmator