I want to split a large string by a series of words.
E.g.
$splitby = array('these','are','the','words','to','split','by');
$text = 'This is the string which needs to be split by the above words.';
Then the results would be:
$text[0]='This is';
$text[1]='string which needs';
$text[2]='be';
$text[3]='above';
$text[4]='.';
How can I do this? Is preg_split
the best way, or is there a more efficient method? I'd like it to be as fast as possible, as I'll be splitting hundreds of MB of files.
I don't think using pcre regex is necessary ... if it's really splitting words you need.
You could do something like this and benchmark see if it's faster / better ...
The only difference with your output is the last word because "words." != "word" and it's not a split word.
preg_split
can be used as:See it
Since the words in your $splitby array are not regular expression maybe you can use
str_split
This should be reasonably efficient. However you may want to test with some files and report back on the performance.