2014-02-10 2 views
0

Я пытаюсь передать переменную php в качестве разделителя, чтобы взорваться(). Значение переменной извлекается из html-формы.Передача переменной php в качестве разделителя на php explode()

форма:

<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); 

Выше не похоже на работу. Он не распознает разделитель и, следовательно, дает мне один элемент в $ arr i.e. То же, что и $ line. Любые предложения были бы весьма признательны. Спасибо

+1

вы пробовали вторя $ разделителем, прежде чем он идет взорваться? –

+0

Если вы 'var_dump'' разделитель '', вы получаете ожидаемое значение в виде строки? –

+0

Да, у меня есть. Если я выбираю вкладку из формы, она дает мне «\ t», но она не работает в функции «Взрыв». Если я вручную инициализирую, $ delimiter = "\ t", а затем передать его, чтобы взорваться, он работает отлично. – ayush

ответ

0

почему вы Don `T использовать preg_split для этого .. например

<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 = preg_split("/".$delimiter."/", $line);  
0

Ваша проблема должна быть так, что ваш $line настроен.
Это работает для меня:

$string = "hello\tworld\tthis\tis\tfun"; 

$options = ["\t"=>'tab', ','=>'comma', ';'=>'semi-colon', '&'=>'amperstand','|'=>'pipe']; 

echo "<form method=\"post\">"; 
echo "<select name=\"delimList\">\r\n"; 
foreach($options as $val => $option){ 
    echo "<option value=\"$val\">$option</option>\r\n"; 
} 
echo "</select>\r\n"; 
echo "<input type=submit></form>"; 
if(isset($_POST['delimList'])){ 
    $delim = $_POST['delimList']; 
    $array = explode($delim, $string); 
    print_r($array); 
} 
Смежные вопросы