PHP split to preg_split()

16,916

preg_split() is similar to the old ereg-function split(). You only have to enclose the regex in /.../ like so:

preg_split('/www/', 'D:/Projects/job.com/www/www/path/source', 2);

The enclosing slashes / here are really part of the regular expression syntax, not searched for in the string. If the www delimiter is variable, you should additionally use preg_quote() for the inner part.

But note that you don't need regular expressions if you only look for static strings anyway. In such cases you can use explode() pretty much like you used split() before:

explode('www', 'D:/Projects/job.com/www/www/path/source', 2);
Share:
16,916

Related videos on Youtube

Basit
Author by

Basit

Updated on June 04, 2022

Comments

  • Basit
    Basit almost 2 years

    I wanted to convert the following split function, which I have been using to preg_split.. it's a little confusing, because the value will change from time to time...

    Current code:

    $root_dir = 'www';
    $current_dir = 'D:/Projects/job.com/www/www/path/source';
    $array = split('www', 'D:/Projects/job.com/www/www/path/source', 2);
    print_r($array);
    

    Output of the split function:

    Array ( [0] => D:/Projects/job.com/ [1] => /www/path/source )
    
    • BoltClock
      BoltClock about 13 years
      @RobertPitt: split() is an old, deprecated function that didn't use PCRE at all, but a different regex engine/syntax.
    • lonesomeday
      lonesomeday
      Why do you want to use preg_split?
  • Basit
    Basit about 13 years
    thanks for the answer. i cant accept it, because its giving me massage, that i can accept after 2 mins.. but it work, thanks
  • Basit
    Basit about 13 years
    btw isnt preg_split is faster then explode?
  • mario
    mario about 13 years
    @Basit: Not usually. Explode does a simple binary search, and doesn't have to look for complex/optional patterns. Also it's implemented as core PHP function, thus can deal with PHP strings better and generate a PHP array directly. The preg_split() function is slower because it makes a roundtrip over libPCRE. -- So explode() is always faster. (Regular expression matching with preg_match() OTOH can often be more efficient than simple PHP string function arithmetics.)
  • Christian
    Christian about 12 years
    @Basit Just think of the work regex has to do compared to simply splitting a string by a particular keyword, it's obvious explode() should be faster!