Search code examples
phpstringexplode

explode string conditionally in php


I have a string with spaces as follows.

$name = 'name="shadow" msg="Your message"';

I want to explode the string such as to get name="shadow" and msg="Your message". But the message inside msg is also splitted

On exploding using whitespace i am not getting desired output

$code = explode(' ', $name);

I want to get

$code[0] = 'name="shadow"'
$code[1] = 'msg="Your message"'

But i get this

$code[0] = 'name="shadow"'
$code[1] = 'msg="Your'
$code[3] = 'message"'

Solution

  • Use /(?<=\")\s/ regex in preg_split(). The regex select any space after " character

    $name = 'name="shadow" msg="Your message"';
    $code = preg_split('/(?<=\")\s/', $name);
    

    Check result in demo