2015-04-13 2 views
-1

с использованием функции substr() как удалить первую и последнюю трехзначную строку в строке и вернуть оставшиеся в середине? например:Возвращаемая строка в середине строки в PHP

$a = 'abc34828xyz'; 
$a = 'abc347283828xyz'; 
$a = 'abc347w83828xyz'; 
// return first 3 
return $first = substr($a, 0, 3); 
// return last 3 
return $last = substr($a, -3); 
// return the string in middle 
// $mid = ? now how do we always get the ones in the middle 
+0

FYI: Вы можете принять ответ, как вам помог больше всего и решила вашу проблему (http://meta.stackexchange.com/q/5234)! – Rizier123

ответ

1

Это должно работать для вас:

(Просто начните со смещением 3, а затем взять длину, где вы отнимите 2 * 3 (6))

echo $middle = substr($a, 3, strlen($a)-6); 
0

Вы можете получить его с помощью preg_replace:

$a = 'abc347w83828xyz'; 
$mid = preg_replace('/...(.*).../', '$1', $a); 
echo $mid, PHP_EOL; 

Выход:

347w83828 

И если вы хотите, вы можете получить их все сразу, используя preg_match вызов:

$a = 'abc347w83828xyz'; 
preg_match('/(...)(.*)(...)/', $a, $matches); 

echo "First: ", $matches[1], PHP_EOL; 
echo "Mid: ", $matches[2], PHP_EOL; 
echo "Last: ", $matches[3], PHP_EOL; 

Выход:

First: abc 
Mid: 347w83828 
Last: xyz 
Смежные вопросы