Search code examples
phphtmlexplodedelimiter

Passing a php variable as a delimiter to php explode()


I am trying to pass a php variable as a delimiter to explode(). The variable's value is being fetched from an html form.

form:

<select name="delimiter">
<option value="\t">Tab Space</option>
<option value=",">Comma (,)</option>
<option value=";">Semi colon (;)</option>
<option value="&">Ampersand (&)</option>
<option value="|">Pipe (|)</option>
</select>

php:

$delimiter=$_POST['delimiter'];
$arr=explode($delimiter, $line);

Above doesn't seem to work. It does not recognize the delimiter and hence gives me a single element in $arr i.e. same as $line. Any suggestions would be greatly appreciated. Thank you


Solution

  • why don`t you use preg_split for this.. for example

    <select name="delimiter">
    <option value="\t">Tab Space</option>
    <option value=",">Comma (,)</option>
    <option value=";">Semi colon (;)</option>
    <option value="&">Ampersand (&)</option>
    <option value="\|">Pipe (|)</option>
    </select>
    

    and php script

    $delimiter =  $_POST['delimiter'];
    
    $arr =  preg_split("/".$delimiter."/", $line);