2013-04-25 5 views
0

У меня есть сценарий ниже, но он выводит следующее Тестирование) вместо желаемого Тестирования. В идеале я стараюсь держать все между скобками и избавляться от всего остального.Удалить все, кроме текста в скобках

$value= Test (Testing) 
echo substr($value, strpos($value, "(") +1, strpos($value, ")") - strpos($value, "(")); 

Каков наилучший способ создать новую строку только с текстом между скобками?

ответ

1

Попробуйте это:

echo preg_replace("/.*\((.*?)\).*/","$1",$value); 
+0

Предполагая, что это всегда содержание последнего paranthesis только он хочет, это хорошее, сжатое решение. – kba

1

Вычесть один из параметра длины к substr():

$value = 'Test (Testing) Text'; 
$left = strpos($value, "("); 
echo substr($value, $left + 1, strpos($value, ")") - $left - 1); 

Это outputs:

Testing 
Смежные вопросы